私は多くのタスクを作成して開始します。タスクの1つが例外をスローする可能性があります。これが発生した場合、すべてのタスクを停止する必要があります。
これを行う唯一の方法は、CancellationTokenSourceを各タスクに渡し、catchブロックでCancel()を呼び出すことです。
TPLは、より一般的な方法で必要な機能をサポートしていますか?
何かのようなもの:
Action<Task> onExceptionAction = t => cancellationTokenSource.Cancel();
var task = Task.WhenAnyThrows<MyException>(tasks, onExceptionAction);
また、例外がスローされない場合、タスクは完了(またはキャンセル)されたと見なされます