.NET 4.5およびC#5フレームワークは、最新の非同期プログラミングモードを導入しました。どちらも長期的な操作タスクを処理するために使用されますが、それぞれの役割と適用可能なシーンを理解することが不可欠です。
async/await
async/awaitは非同期の構文糖であり、開発者が同期的に非同期行動を表現できるため、コードの読みやすさとメンテナンスが簡素化されます。 UIスレッドをブロックせずにAsync/await機能を実行できます。これは、長期タスク期間中にユーザーインターフェイスの応答能力を維持するためです。 たとえば、
ネットワークリクエスト:
<code class="language-csharp">using (WebResponse response = await webReq.GetResponseAsync()) { using (Stream responseStream = response.GetResponseStream()) { int bytesRead = await responseStream.ReadAsync(buffer, 0, buffer.Length); } }</code>
バックグラウンドワーカーコンポーネントを使用して、CEOをスレッドプールスレッドで実行するタスクを実行して、UIの応答能力を確保します。スケジュールレポートと完了関数を提供し、タスク実行プロセス中に開発者がUIを更新できるようにします。 バックグラウンドワーカーの作成と実行されたスレッドの作成と実行は、Async/awaitのよりシンプルな構文と比較して追加の複雑さを導入しました。
一般的なアプリケーションシナリオ
非同期I/O操作
Webサービスコール イベントのプログラミング
進行状況レポートのタスク マニュアル管理スレッドのシーン
UI応答能力を保持します 単純化されたイベント処理
適切なツールを選択を選択します
async/awaitおよびbackgroundworkerの選択は、タスクの特定のニーズに依存します。以上がasync/await vs. backgroundworker:.netで長期にわたるタスクにいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。