非同期プログラミング(Async/awaitを使用)は、開発に大きな利点があります。ただし、場合によっては、非同期タスクを同時に実行する必要があります。この記事では、この需要を解決するために同時に非同期タスク
メソッドを実行できるRunSync補助方法を紹介します。
<code class="language-csharp">customerList = AsyncHelpers.RunSync(() => GetCustomers());</code>runSyncメソッドは、排他的な同期コンテキストを作成し、現在のコンテキストに設定することで実行されます。このコンテキストにより、メッセージの処理が可能になり、非同期タスクの同期実行が保証されます。可能な異常に対処するために、この方法は、同期コンテキストを展開するexclusivesyninizationContextという名前のプライベートクラスを使用します。
コンテキストでは、タスクがリリースされ、ワークテムスワイティングイベントが信号を送信するように設定されており、プロジェクトが待っていることを示しています。次に、beginMessageloopメソッドは、タスクが完了するまですべてのリンクされたアイテムを処理します。完了後、ExclusivesYnchronizationContextが復元され、タスクの結果が返されます。
その他の説明提供されたコードは著者が所有しておらず、まだ審査中です。ただし、スケジューリングプログラムを吊るす状況など、さまざまな場合に効果的であることが証明されています。
結論
RunSync補助方法を使用することにより、開発者は非同期的に非同期タスクを実行して、非同期プログラミングの機能を拡張できます。排他的な内容とメッセージサイクルの処理タスクが同期して確実に効果的であることを確認します。以上がC#で非同期タスクを同期するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。