如果我有一个具有长时间运行操作的流,例如:
inputStream.Select(n => Task.Run(() =>
{
// Long running operation
Thread.Sleep(TimeSpan.FromSeconds(5));
return n * n;
}).ToObservable())
.Switch()
.Subscribe(result =>
{
// Use result in some way
Console.WriteLine(result);
});
我该如何在Task.Run
调用中获取一个CancellationToken,以便当Switch
取消正在进行的计算的订阅时,将CancellationToken设置为已取消状态,以便我知道要中止计算。