4

重複の可能性:
タスクコンストラクターのキャンセルトークン:なぜですか?

このメソッドは、CancellationTokenを受け取ります。

CancellationTokenSource cts = new CancellationTokenSource(4);
var t = Task.Factory.StartNew(() => { // code }, cts.Token);

キャンセルは協調的であるため(実際の作業コードはキャンセルトークンを監視する必要があります)、これを引数としてStartNewメソッドに渡す目的は何ですか?

4

1 に答える 1

3

これにより、タスク自体をキャンセル済みとしてマークできるため、最初のタスクを待機しているすべてのタスク(つまり、task.ContinueWith()メソッドでキューに入れられているタスク)を起動できます。もちろん、プライマリタスクがキャンセルされた場合、これらの後続のタスクもキャンセルする必要があります。

そして、実行されている実際のコードもキャンセルトークンに従う必要があることは間違いありません。

于 2012-06-02T15:52:29.187 に答える