0
我有类似是否正确扔OperationCanceledException内Observable.FromAsync
observable.Select(x => Observable.FromAsync(token => Task.Run(() =>
{
// ... do some work ...
token.ThrowIfCancellationRequested();
// ... do some more work ...
return 7 * x;
}, token)))
.Switch()
.Subscribe(x =>
{
// Whatever
});
的Task
内可以发生一个需要一段时间工作的一些代码,所以如果Switch
已经转移到另一个任务(因为新的价值抵达observable
)我想放弃做这项工作。
拨打ThrowIfCancellationRequested()
是否正确?即一旦从FromAsync
返回IObservable
已被处置(并取消令牌),我的OperationCanceledException
将被忽略 - 或者它会导致其他地方的问题?
我在一个测试应用程序尝试了这一点,似乎就ok了工作 - 但是,这并不意味着它是正确的:)