Task.Factory.ContinueWhenAll()を数回使用して、すべての先行がエラーやキャンセルなしで完了したときにのみ継続を呼び出すことを試みました。これを行うと、メッセージとともに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メソッドを使用してこのようなことを行う方法はありますか?