C# での Async/Await の使用法: 待つべきか、待たないべきか?実行への影響
次のコードには、Callee
メソッドへの 6 つの呼び出しが含まれており、それぞれ異なる方法で実行されます。
非同期呼び出し (ファイアアンドフォーゲット): メソッドは非同期で呼び出され、待機しません。メソッドはバックグラウンドで非同期に実行され、呼び出したメソッドはすぐに実行を継続します。 Callee
非同期呼び出しを待ちます: メソッドが呼び出され、Callee
を使用してその完了を待ちます。呼び出したメソッドは、await
メソッドが完了するまで待機してから、後続のコードの実行を続行します。 Callee
メソッドの後のコードを実行する前に、メソッドが完了していることを確認してください。 Callee
Task.Run を使用した非同期呼び出し: メソッドは Callee
を使用して開始されますが、結果を待ちません。ケース 1 と同様に、Task.Run
メソッドはバックグラウンドで実行され、呼び出したメソッドはすぐに実行を継続します。 Callee
Task.Run を使用し、非同期呼び出しを待ちます: メソッドは Callee
を使用して開始され、結果を待ちます。これはケース 2 と同等で、呼び出し側メソッドは Task.Run
メソッドが完了するまで待ってから続行します。 Callee
Task.Run と async を使用した非同期呼び出し: メソッドが Callee
として宣言されている点を除き、ケース 3 と同じです。 async
キーワードを使用すると、メソッドが async
でラップされている場合でも、メソッドを非同期に呼び出すことができます。 Task.Run
Task.Run と async を使用し、非同期呼び出しを待機します。 メソッドが Callee
として宣言されていることを除いて、ケース 4 と同じです。同様に、async
キーワードでは、async
でラップされている場合でも await メソッドを使用できます。 Task.Run
ケース 1 および 3: メソッドはバックグラウンド スレッドで実行され、呼び出したメソッドはすぐに実行を継続します。 Callee
ケース 2 および 4: 呼び出しメソッドは、 メソッドが完了するのを待ってから、後続のコードを実行します。 Callee
ケース 5 および 6: これらは、追加の並列処理に を使用する非同期呼び出しです。ただし、Task.Run
キーワードを使用すると、必要に応じてそれらを待つことができます。 async
以上がC# の非同期/待機: 待機するか待機しないか? 実行への影響の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。