Task Parallel Library を使用しており、Task Factory を使用して新しいタスクのリストを作成および開始しています。タスクを開始した後、Task.WaitAll(...) を呼び出して、すべてのタスクが戻るまで待機します。コードは次のようになります。
Tasks<MyClass>[] tasks = .../Create List of Tasks and Start using TaskFactory.StartNew(..) etc.
Task.WaitAll(tasks); //Wait until all tasks complete before continuing.
タスクが戻ってきて完了すると、それらが特定の基準を満たしていれば、結果がリストに集約され、後で処理されます。各タスクの実行中に、集計リストに追加されたタスクの結果を「不適格」にする特定の例外がスローされる場合があります。実行中のタスク内で例外をスローできるようにして、タスクが実行されないようにしたいと考えています。
特定のイベントを処理できるようにするためのキャンセル トークンやキャンセル ソースなどの機能があることは承知していますが、自分のやりたいことができないようです。存在しませんが、task.OnException や task.OnError などのタスクのイベント ハンドラーをサブスクライブするなどの機能があればよかったのにと思います。TPL でこの機能を実現するためのオプションは何ですか?