Task.Start()、Task.Run()、および Task.Factory.StartNew() についての深い理解
タスク並列ライブラリ (TPL) は、非同期操作を作成およびスケジュールするための複数の方法を提供します。この記事は、Task.Start()、Task.Run()、および Task.Factory.StartNew() の使用シナリオと違いを明確にすることを目的としています。
Task.Start()、Task.Run()、および Task.Factory.StartNew() の比較
3 つのメソッドはいずれも非同期タスクを作成および開始できますが、機能と用途が異なります。
Task.Start()
Task.Start() は、タスクの手動作成とスケジュール設定を必要とする低レベルのメソッドです。タスクの実行に対する制御が制限されているため、通常、ほとんどのシナリオでは推奨されません。
Task.Run()
Task.Run() は、特定の安全なパラメーターを使用して Task.Factory.StartNew() へのショートカットを提供します。子の添付ファイルの拒否やデフォルトのキャンセル フラグの使用などのオプションを使用して、デフォルトのスケジューラ上に新しいタスクが作成されます。
Task.Factory.StartNew()
Task.Factory.StartNew() は、最も柔軟で強力なメソッドです。これにより、次のようなカスタム タスクの作成とスケジュール オプションが可能になります。
各メソッドをいつ使用するか
概要
最も実用的な目的では、Task.Run() が非同期操作の主な選択肢です。さらにカスタマイズが必要な場合は、Task.Factory.StartNew() が必要な柔軟性を提供します。ただし、正当な理由がない限り、Task.Start() の使用は避けてください。
以上がTask.Start()、Task.Run()、および Task.Factory.StartNew(): それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。