私がやっている作業プロジェクトのタスク並列ライブラリの使い方を研究しています。長時間実行するタスクの長所と短所を理解したいと思います。実生活の例はまだありませんが、この背後にある理論を理解したいだけです。タスク並列ライブラリ - LongRunningタスクと複数の継続との比較
task schedulersとこのSO questionについては、ThreadPoolの外部にスレッドを作成しないようにできるだけ長く実行することを避けるのが最善の方法です。しかし、あなたはこれに代えて、完了するまでに長い時間がかかるとしていたタスクを持っていたと言う:
Task.Factory.StartNew(() => DoTimeConsumingWork(), TaskCreationOptions.LongRunning)
はあなたのような、試してみて、仕事の少ない、より速く単位に作業を分割し、タスクの継続を使用することができますこれは:
Task.Factory
.StartNew(() => DoWorkPart1())
.ContinueWith(t => DoWorkPart2())
.ContinueWith(t => DoWorkPart3())
//...etc
このアプローチは、もう少し有益なのでしょうか、それとも達成しようとしていることに対して過度のものでしょうか?
本当に* long *の意味に依存します。 –