コードに次の行があります。
var taskA = Task.Factory.StartNew(WorkA);
var taskB = Task.Factory.StartNew(WorkB);
var allTasks = new[] { taskA, taskB };
Task.Factory.ContinueWhenAll(allTasks, tasks => FinalWork(), TaskContinuationOptions.OnlyOnRanToCompletion);
しかし、これを実行すると、次のエラーが発生します。
複数のタスクからの継続について、特定の継続の種類を除外することは無効です。
これは、オプションTaskContinuationOptions.OnlyOnRanToCompletionが原因です。
私の質問は、すべてのタスクが適切に作業を行ったことを確認し (すべてのタスクのステータスがRanToCompletion )、それからFinalWork()を実行する方法です。その間、アプリケーションは他のタスクを実行します。