私は、すべての前件がエラーや取り消しなしで完了まで実行されたときにのみ、継続を呼び出すために、Task.Factory.ContinueWhenAll()を数回使用しようとしました。そうすることで、複数のタスクのオフ継続のための具体的な継続の種類を除外するために無効であるAとBが1つのTPLメソッドを使用して障害やキャンセルなしで完了した後で、タスクCを続行できますか?
、例外ArgumentOutOfRangeExceptionは、メッセージとともにスローされます。パラメータ名:例えばcontinuationOptions
、コード
var first = Task.Factory.StartNew<MyResult>(
DoSomething,
firstInfo,
tokenSource.Token);
var second = Task.Factory.StartNew<MyResult>(
DoSomethingElse,
mystate,
tokenSource.Token);
var third = Task.Factory.ContinueWhenAll(
new[] { first, second },
DoSomethingNowThatFirstAndSecondAreDone,
tokenSource.Token,
TaskContinuationOptions.OnlyOnRanToCompletion, // not allowed!
TaskScheduler.FromCurrentSynchronizationContext());
はTPLに受け入れられません。他のTPLメソッドを使ってこのようなことをする方法はありますか?