ホームページ > バックエンド開発 > C++ > Await と Task.Result: C# でそれぞれをいつ使用する必要がありますか?

Await と Task.Result: C# でそれぞれをいつ使用する必要がありますか?

Barbara Streisand
リリース: 2025-01-22 23:24:12
オリジナル
918 人が閲覧しました

Await vs. Task.Result: When Should I Use Each in C#?

C# 非同期プログラミングにおける Await と Task.Result のベスト プラクティス

C# での非同期プログラミングには、長時間実行される作業単位をカプセル化するタスクが含まれることがよくあります。タスクを処理する 2 つの一般的な方法は、awaitTask.Result です。どちらも同様の結果を達成できますが、動作には微妙な違いがあります。

await キーワードは、待機中のタスクが完了するまで現在のメソッドの実行を一時停止します。完全に完了したタスクの場合、await 式はタスクの結果を直接返すため、コードがクリーンになり、パフォーマンスが向上する可能性があります。

対照的に、Task.Result はタスクの結果をすぐに取得します。タスクが失敗すると、AggregateException 例外がスローされ、一部の非同期シナリオではデッドロックが発生する可能性があります。したがって、一般的には await の代わりに Task.Result を使用することをお勧めします。

Stephen Cleary は、主に次の 2 つの理由から、await の代わりに Task.Result を使用することを推奨しています。

  1. 例外処理: は例外を await でラップしないため、非同期コードでのエラー管理が簡素化されます。 AggregateException
  2. デッドロックの回避: および Result は、特に非同期メソッド内で使用される場合、デッドロックを引き起こす可能性があります。 Wait 実行を再開する前にタスクが完了していることを確認することで、このリスクを排除します。 await

使用ガイド:

Cleary の推奨に従って、

Result、および Wait の使用には次のガイドラインが適用されます。 await

  • 非同期アプリケーション コード: 常に を使用します。 await
  • 非同期ユーティリティ コード: および Result は、適切なドキュメントを使用して注意して使用できます。 Wait
  • 並列タスク コード: および Result が適切です。 Wait
これらのガイドラインに従うと、非同期コードが正しく処理され、デッドロックが最小限に抑えられ、エラー処理が簡素化されます。

以上がAwait と Task.Result: C# でそれぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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