非同期メソッドの終了時に戻るか待機するか
タスクを返す非同期メソッドでは、待機するかどうかを選択できます後続の非同期呼び出しを行うか、単にそのタスクを返します。この決定には、考慮すべき特定の結果があります。
オプション A: タスクを返す
このシナリオでは、FooAsync メソッドで例示され、メソッドは直接戻り値を返します。 BazAsync によって生成されたタスク。このアプローチは、メソッド宣言の同期を維持し、同期例外処理と引数の検証を可能にするのに適しています。また、ランタイムによって追跡されるタスクが 1 つ少なくなります。
オプション B: タスクの待機
BarAsync メソッドでは、await キーワードを使用してタスクを待機します。 BazAsync の完了。これは、非同期メソッド自体が非同期メソッドとして宣言されている場合に必要です。これにより追加のタスクが発生する可能性がありますが、戻り値の型を変更することなく、後でメソッドを変更して追加の後処理タスクを実行できるようになります。
Exceptions
非同期メソッド内の同期コードは同期的に例外をスローすることに注意することが重要です。非同期例外処理が必要な場合は、メソッドを非同期として宣言する必要があります。
オーバーロード
非同期呼び出しのタスクを返すことは、通常、メソッドのオーバーロードで使用され、同期の代替となる非同期method.
結論
別の非同期呼び出しのタスクを返すか待機するかの選択は、メソッドの特定の要件によって異なります。タスクを返すと同期動作が維持され、タスクの数が減りますが、タスクを待機すると後処理の柔軟性が保証されますが、追加のタスクのオーバーヘッドが発生します。
以上が非同期メソッドの終了時にタスクを返すか待機する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。