実行時間の長い操作を含むストリームがある場合、次のようになります。
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 をキャンセル済みとして設定して、計算を中止することができるようにするにはどうすればよいですか。