非同期プログラミングでは
およびreturn値の選択async Task
async void
非同期プログラミングでは
を使用することが一般的ですが、async
またはawait
を返す方法として選択することはしばしば混乱しています。 public async Task AsyncMethod(int num)
public async void AsyncMethod(int num)
return
一般的に、Task
を返すことが最初の選択です。これにより、発信者は非同期操作の進行を追跡し、それが完了するのを待つことができます。これは、タスクが操作を実行するのに長い時間がかかる可能性があることを示している場合に非常に便利です。
returnTask
通常、非同期操作に使用されるに戻ると、その進行状況を報告する必要はありません。または、受信者が完了するのを待つ必要はありません。適切なシナリオは、イベント処理手順が通常返されないため、イベントに対処することです。 void
非必要なキーワード
void
場合によっては、
は必要ない場合があります。たとえば、メソッドが単一の非同期操作のみを実行し、その進捗を追跡する必要がない場合は、次の構文を使用できます。 ただし、この場合、特に非同期操作が発信者の前例のない異常を投げた場合、異常の正しい扱いを確保するため、と
を使用することをお勧めします。
async
その他の予防策await
<code class="language-csharp">public static void AsyncMethod2(int num) { Task.Factory.StartNew(() => Thread.Sleep(num)); }</code>
メソッドは「トップレベル」の非同期操作と見なされ、異常な治療に特別なルールがあります。 async
await
上位レベルメソッドが異常にスローされている場合、発信者は常に観察するとは限りません。
およびを使用して、例外を上部および非トップレベルの非同期メソッドで適切に処理できるようにします。
以上がasyncタスクvs. async void:いつタスクを返す必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。