4

私は持ってい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 のポイントがチェーンに別のアクションを追加することである場合、言語設計者は前のタスクの結果を単純に渡さなかったのはなぜでしょうか? または、非ジェネリック タスクの場合、パラメーターなしのアクションが必要ですか?

4

1 に答える 1