我有以下的TPL任務使任務保持活動狀態並使所有訂閱處於活動狀態而不旋轉的正確方法是什麼?
public abstract class AggregatorBase : IAggregator
{
public void Start(CancellationToken token)
{
var parent = Task.Factory.StartNew(x =>
{
Aggregate(token);
},TaskCreationOptions.LongRunning, token);
parent.Wait();
}
public abstract void Aggregate(CancellationToken ct);
}
總結方法實現我公司擁有一批Observable.Subscription的具有以下
public override void Aggregate(CancellationToken ct)
{
this.observables.Subscribe(// Do stuff);
this.observables.Subscribe(// Do more stuff);
while (!token.IsCancellationRequested)
{
System.Threading.Thread.Sleep(1000)
}
}
問題結束中是什麼保持任務活着的最好方式和所有訂閱活動沒有旋轉?
我很困惑 - 如果你使用Rx – 2012-02-23 02:16:41
,你爲什麼會阻塞或睡覺?我認爲他意味着他開始了一項任務,該任務設置了Rx訂閱,但是他不希望該任務繼續和'完成'。所以他不會在訂閱回調中自行阻止,而是在設置訂閱的任務中。 – Tyson 2012-02-23 04:41:43
@泰森,但爲什麼?我同意Paul Betts。這似乎是對我的誤用/誤解Rx – 2012-07-06 14:37:12