私は持っていTask<T> t1
ます。Task t2
完了後に別のものを実行したいt1
。.ContinueWith
の方法を使用することにしましたt1
。
void ThenFrob(Task<Frobber> t1) {
t1.ContinueWith(frobber => frobber.Frob())
}
ただし、の Action パラメーターはそれ自体ではなく、 にTask<T>
渡されるため、これを行うことはできません。代わりに、アクションに渡されたパラメーターの結果を取得して、アクションを操作する必要があります。Task<T>
T
void ThenFrob(Task<Frobber> t1) {
t1.ContinueWith(frobberTask => {
var frobber = frobberTask.Result;
frobber.frob();
});
}
ContinueWith のポイントがチェーンに別のアクションを追加することである場合、言語設計者は前のタスクの結果を単純に渡さなかったのはなぜでしょうか? または、非ジェネリック タスクの場合、パラメーターなしのアクションが必要ですか?