7
コンポーネントのユニットテストでは、コンポーネントがさまざまな時点で完了するタスクにどのように反応するかを検証する必要があります。タスクの作成方法<手動で完了できる>
私は自由に解決できるTask<>
を作成するにはどうすればよいですか?
コンポーネントのユニットテストでは、コンポーネントがさまざまな時点で完了するタスクにどのように反応するかを検証する必要があります。タスクの作成方法<手動で完了できる>
私は自由に解決できるTask<>
を作成するにはどうすればよいですか?
TaskCompletionSource
を使用すると、完全な「手動」タスクを作成できます。
デリゲートにバインドされていないタスクのプロデューサ側を表し、 は、タスクプロパティを使用してコンシューマ側にアクセスします。消費者へ
ハンドアウト完了源のTask
プロパティを、タスクを完了するために、(意志で)それにSetResult
を呼び出します。また、取り消しと失敗をそれぞれ表すためにSetCanceled
とSetException
があることに注意してください。
ありがとうございます!継続が正確にいつ実行されるかを知っていますか? 'SetResult'が呼ばれると?後でいつですか?これを制御する方法はありますか? –
スレッド固有ではありません。「Set ***」メソッドはどのスレッドでも呼び出せ、オブジェクト自体はスレッドセーフです。また、レースに対処するメソッドの 'TrySet ***'ファミリーを提供します。 – Ani
継続は、タスクが終了すると実行されます(必要に応じて、継続上のタスク状態フィルタによって決定されます)。 – Ani