3

実行時間の長い操作を含むストリームがある場合、次のようになります。

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 をキャンセル済みとして設定して、計算を中止することができるようにするにはどうすればよいですか。

4

1 に答える 1