Do Work メソッドの非同期性: Task.Run と Async キーワード
非同期プログラミングの領域では、非同期実行と非同期実行の区別があります。待ちやすさは微妙な違いがあるかもしれません。 Task.Run と async キーワードの詳細を詳しく調べて、同期または非同期で実行するメソッドの作成におけるそれらの役割を理解しましょう。
非同期実行: Task.Run
Task.Run メソッドを使用すると、コードの実行をバックグラウンド スレッドに委任できます。コードをカプセル化する Task オブジェクトを作成することにより、Task.Run を使用すると、現在の実行パスをブロックせずにコードを非同期的に実行できます。ただし、Task.Run を使用してもメソッドが待機可能になるとは限りません。
待機可能性: 非同期キーワード
非同期メソッドは、待機時に一時停止および再開できるメソッドです。表現。これにより、メソッドはブロックせずに呼び出しスレッドに実行ポイントを返すことができます。 async として宣言されたメソッドは、Task または Task
例: 非同期/待機なしの実行
// Not async because it does not use await private Task<int> DoWorkAsync() { return Task.Run(() => { return 1 + 2; }); }
この例では、Task
例: Await による非同期実行
private async Task<int> GetWebPageHtmlSizeAsync() { var client = new HttpClient(); var html = await client.GetAsync("http://www.example.com/"); return html.Length; }
この例では、メソッドは async として宣言されており、HttpClient.GetAsync 操作で await を使用して実行を一時停止します。 Web ページのダウンロード中にメソッドは呼び出し元に返され、結果が利用可能になったら再開します。
ベスト プラクティス:
結論:
Task.Run は、コードをバックグラウンド スレッドに委任することで非同期実行を容易にします。 async キーワードにより待機可能になり、メソッドの実行の一時停止と再開が可能になり、応答性の高い効率的なコードを作成する柔軟性が得られます。
以上がTask.Run と Async キーワード: 非同期操作にそれぞれをいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。