2

この質問は、別のより一般的な (そしておそらく基本的な) 質問につながります。なぜTaskオブジェクトは再利用できないのでしょうか?

マイクロソフトは、説明なしで次の声明を書いています。

タスクは 1 回だけ開始および実行できます。タスクをもう一度スケジュールしようとすると、例外が発生します。

この背後にある理由は、説明に値しないほど明白なのでしょうか? Task繰り返し設定して継続で開始してもパフォーマンスに影響はありませんか?

4

1 に答える 1

5

Aは、将来のある時点で発生する可能性のある単一のTask何かを表しています。タスクがいつ完了したか、完了した場合、そのタスクの最終状態などを公に示す手段を提供します。

タスクが完了して再び開始した後、IsCompletedプロパティは何を返す必要がありますか? 完了しましたが、もう一度開始しました。呼び出し元は、開始されてから完了するまでの時間枠の間、最終状態 (つまり、キャンセルされたか、例外であるか、それが であるかなど) にのみアクセスできるべきだと言っていますResultか? それは非常に紛らわしいでしょう。

繰り返される操作を表すことができる他のオブジェクト、または (他のオプションの中でも) などの非同期操作のコレクションがありますIObservableこれは、特定の委任された、順次呼び出されます。

于 2013-09-19T20:30:37.647 に答える