我是 Rx 的新手,所以请耐心等待。
我想将 a 包裹Task<T>
在一个IObservable<T>
. 到目前为止,一切都很好:
Task<T> task = Task.Factory.StartNew(...);
IObservable<T> obs = task.ToObservable();
现在,我想要的是在观察者取消订阅时发出取消任务的信号:
var cancel = new CancellationToken();
Task<T> task = Task.Factory.StartNew(..., cancel);
IObservable<T> obs = task.ToObservable(); //there should be a way to tie the cancel token
//to the IObservable (?)
IDisposable disposable = obs.Subscribe(...);
Thread.Sleep(1000);
disposable.Dispose(); // this should signal the task to cancel
我怎么做?
FWIW 这里是产生这个切线的场景:Rx and tasks - 当新任务产生时取消正在运行的任务?