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

`.GetAwaiter().GetResult()` と `Task.Result`: それぞれをいつ使用する必要がありますか?

Susan Sarandon
リリース: 2025-01-24 11:51:10
オリジナル
219 人が閲覧しました

`.GetAwaiter().GetResult()` vs. `Task.Result`: When Should You Use Each?

および:いつ使用されますか? Task.GetAwaiter().GetResult() Task.Resultコードで非同期メソッドを実行する必要性は非常に一般的です。これは、または

属性によって達成できます。ただし、これら2つの方法の微妙な違いと潜在的な欠点を理解することが不可欠です。

Task .GetAwaiter().GetResult() .Result

コールTask.GetAwaiter().GetResult()結果を直接取得するか、異常な異常を捨てます。この動作は、および

よりも優れています。なぜなら、原始的な異常のspread延を保証し、

にカプセル化されないからです。 Task .GetAwaiter().GetResult()ただし、.Wait().Resultのように、死んだロックや糸プールリソースの疲労のリスクがあることに注意することが重要です。 AggregateException

.GetAwaiter().GetResult().Wait() .Result

属性も結果をキャンセルした場合、その結果を取得します。ただし、非同期操作における他の信じられないほどの異常は、キャプチャされ、

に詰め込まれます。 Task.Resultいつ使用するか

は異常なコミュニケーションの利点がありますが、非同期タスクの同期閉塞を可能な限り避けることを強くお勧めします。この方法は、死んだロックとリソースにつながる可能性があります。それどころか、これらの問題を回避するために、メカニズムを使用して完全な非同期コードを記述することを検討してください。 Task

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

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