.NET ASYNCHRONOUS操作:ASYNC/待ち望とバックグラウンドワーカーの比較とアプリケーションシナリオ.NET 4.5およびC#5は、非同期プログラミングの新しいオプションをもたらし、古いバックグラウンドタスク管理ツールのバックグラウンドワーカーとの比較をトリガーしたASYNC/待ち声機能を導入しました。どちらも非同期操作を処理するために使用されますが、その役割とアプリケーションのシナリオは非常に異なります。
async/await:aynchronousを待つ
async/awaitは、非同期プログラミングを簡素化する言語文法です。これにより、開発者はUIスレッドをブロックしてUIの応答を確保することなく、同時に実行する非同期コードを記述できます。 Async/awaitは通常、非同期操作とその継続メカニズムを含むタスク非同期モード(TAP)に基づいています。
バックグラウンドワーカー:舞台裏のタスク管理バックグラウンドワーカーは、UIスレッドに依存しないバックグラウンドスレッドの長期操作タスクを管理するために使用されます。これは、UIの応答速度に影響を与えることなく、背景への重い動作をアンインストールする簡単なメカニズムを提供します。バックグラウンドワーカーには、構築された進行状況レポートとキャンセル機能があり、非同期タスクの実現を簡素化します。
いつasync/async/await async/awaitは、次のシーンに特に適しています。
ネットワークサービスからデータの取得やファイルの読み取りなど、 I/O操作を非同期に実行する必要があります。
非同期委員会または事件を使用して、非同期が既存の操作を継続できるようにします。
UI応答を維持しながら、複数の非同期操作が完了するのを同時に待つ必要があります。
バックグラウンドワーカーを使用する
バックグラウンドワーカーは、次の状況に最も適しています。
バックグラウンドで実行する必要がある計算密度の高いプロセス。 -
進行状況を報告するか、UIスレッドから操作をキャンセルする必要があります。 -
UIフリーズを避けるために、多数の作業を別のスレッドにアンインストールする必要があります。 -
バックグラウンドワーカーとasync/await
表面上の両方が非同期タスクで処理されていますが、バックグラウンドワーカーとAsync/awaitは完全に異なる概念です。
Async/awaitは、主に非同期プログラミングに焦点を当て、タップを使用してバックグラウンドタスクの管理に焦点を当て、レポートとキャンセル機能を提供します。
async/awaitは、I/O操作やその他の非同期構造との相互作用に適していますが、バックグラウンドワーカーは、非同期操作を伴わない可能性のある長い操作タスク用に設計するように設計されています。 -
async/awaitとc#言語の構文はシームレスであり、シンプルでエレガントな非同期コード作成方法を提供します。 -
以上がasync/await vs. backgroundworker:いつ非同期操作に使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。