async/await and backgroundworker:違いを理解
c# 'sasync
/await
およびBackgroundWorker
はどちらも、UISの応答性を維持するための背景タスクを処理します。 ただし、アプローチと最適なシナリオは大きく異なります。 適切なツールを選択することは、タスクの性質とコーディングスタイルによって異なります。
バックグラウンドワーカー:専用のバックグラウンドタスクハンドラー
別のスレッドで単一の長期にわたる操作を実行することに優れています。 メインUIスレッドの進行状況の更新がBackgroundWorker
イベントを介して更新され、タスクをキャンセルする機能を提供するシナリオに最適です。
ProgressChanged
/
は、非同期操作を順次操作することができるようにすることで、非同期コードを簡素化します。 本質的に新しいスレッドを作成するわけではありません。代わりに、タスクベースの非同期パターン(TAP)のような非同期プログラミングパターンを活用します。 これにより、多くの非同期タスクでよりクリーンで読みやすくなります。
Async
await
典型的なユースケース:
バックグラウンドワーカーは次のように最適です
容易に利用可能な非同期パターンなしで、単一の長い背景操作。 UIに頻繁に進捗状況を報告する必要があるタスク キャンセル可能である必要がある
タスク。/が読みやすく改善されているため、
清潔で保守可能なコードを優先する状況async
async/awaitizeを優先順位付けする場合:await
非同期プログラミングパターンは、タスクで容易に利用できます。 実行を一時停止し、複数の非同期操作を同時に待つ必要があります。
コードの明確性と保守性は最重要です
:以上がasync/await vs. backgroundworker:バックグラウンドタスクにいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。