ホームページ > バックエンド開発 > C++ > C# の非同期/待機: 待機するか待機しないか? 実行への影響

C# の非同期/待機: 待機するか待機しないか? 実行への影響

Susan Sarandon
リリース: 2025-01-12 13:22:43
オリジナル
903 人が閲覧しました

Async/Await in C#:  To Await or Not to Await?  The Impact on Execution

C# での Async/Await の使用法: 待つべきか、待たないべきか?実行への影響

次のコードには、Callee メソッドへの 6 つの呼び出しが含まれており、それぞれ異なる方法で実行されます。

  1. 非同期呼び出し (ファイアアンドフォーゲット): メソッドは非同期で呼び出され、待機しません。メソッドはバックグラウンドで非同期に実行され、呼び出したメソッドはすぐに実行を継続します。 Callee

  2. 非同期呼び出しを待ちます: メソッドが呼び出され、Callee を使用してその完了を待ちます。呼び出したメソッドは、await メソッドが完了するまで待機してから、後続のコードの実行を続行します。 Callee メソッドの後のコードを実行する前に、メソッドが完了していることを確認してください。 Callee

  3. Task.Run を使用した非同期呼び出し: メソッドは Callee を使用して開始されますが、結果を待ちません。ケース 1 と同様に、Task.Run メソッドはバックグラウンドで実行され、呼び出したメソッドはすぐに実行を継続します。 Callee

  4. Task.Run を使用し、非同期呼び出しを待ちます: メソッドは Callee を使用して開始され、結果を待ちます。これはケース 2 と同等で、呼び出し側メソッドは Task.Run メソッドが完了するまで待ってから続行します。 Callee

  5. Task.Run と async を使用した非同期呼び出し: メソッドが Callee として宣言されている点を除き、ケース 3 と同じです。 async キーワードを使用すると、メソッドが async でラップされている場合でも、メソッドを非同期に呼び出すことができます。 Task.Run

  6. Task.Run と async を使用し、非同期呼び出しを待機します。 メソッドが Callee として宣言されていることを除いて、ケース 4 と同じです。同様に、async キーワードでは、async でラップされている場合でも await メソッドを使用できます。 Task.Run

概要: これらの呼び出しの基礎となるロジックは次のとおりです:

  • ケース 1 および 3: メソッドはバックグラウンド スレッドで実行され、呼び出したメソッドはすぐに実行を継続します。 Callee

  • ケース 2 および 4: 呼び出しメソッドは、 メソッドが完了するのを待ってから、後続のコードを実行します。 Callee

  • ケース 5 および 6: これらは、追加の並列処理に を使用する非同期呼び出しです。ただし、Task.Run キーワードを使用すると、必要に応じてそれらを待つことができます。 async

以上がC# の非同期/待機: 待機するか待機しないか? 実行への影響の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート