タスク並列ライブラリには、BackgroundWorker クラスの代替または改善と見なされるものはありますか?
ウィザード スタイルの UI を備えた WinForms アプリケーションがあり、実行時間の長いタスクをいくつか実行しています。標準の進行状況バーと操作をキャンセルできるレスポンシブ UI が必要です。以前に BackgroundWorker でこれを行ったことがありますが、代わりに使用できる TPL パターンがあるかどうか疑問に思っていますか?
タスク並列ライブラリには、BackgroundWorker クラスの代替または改善と見なされるものはありますか?
ウィザード スタイルの UI を備えた WinForms アプリケーションがあり、実行時間の長いタスクをいくつか実行しています。標準の進行状況バーと操作をキャンセルできるレスポンシブ UI が必要です。以前に BackgroundWorker でこれを行ったことがありますが、代わりに使用できる TPL パターンがあるかどうか疑問に思っていますか?
このクラスは;Task
を改良したものです。BackgroundWorker
もちろん、ネスト (親/子タスク) をサポートし、新しいキャンセル API、タスクの継続などを使用します。
私のブログに例があり、古いBackgroundWorker
やり方と新しいTask
やり方を示しています。進行状況を報告する必要があるタスク用の小さなヘルパー クラスがあります。この例では、結果の値、エラー条件、キャンセル、および進行状況の報告について説明しています。
バックグラウンド ワーカーは、これを達成するための有効な方法です。複数の大規模な操作を同時に実行している場合は、並列拡張を検討する価値があります。