それはに相当しますか? Task.GetAwaiter().GetResult()
非同期プログラミングでは、同時に実行するために非同期方法が必要になる場合があります。 1つの方法はを使用することですが、これは死んだロックの疲労とプールリソースの糸をつなぐ可能性があります。ただし、異常を直接広げるよりも、Task.Result
ではなく、異常を直接広めるため、やよりも優れていると考えられています。
Task.GetAwaiter().GetResult()
、Task.Wait
およびTask.Result
違いAggregateException
およびは、異常なパッケージングを自動的にTask.GetAwaiter().GetResult()
にパックします。これは、初期のフレームバージョンとの互換性を維持するためです。対照的に、は異常を直接広め、包装の問題を回避します。 Task.Wait
Task.Result
の利点
Task.Wait
Microsoft PFXチームは、Task.Result
開発者がオペレーターが使用する異常なコミュニケーションロジックに直接アクセスできるようにすると述べました。これは、パッケージなしで保持する必要があるシーンで非常に便利です。 AggregateException
Task.GetAwaiter().GetResult()
専門家のスティーブン・クリアリーはさらに、
警告:Task.GetAwaiter().GetResult()
、およびtask.GetAwaiter().GetResult()
、しかし、より適切であり、デッドロックされたロックにつながらない「非同期/待ち望」メソッドを使用することを好むはずです。これらの方法は、特別な状況でのみ使用する必要があります。 await
以上が`Task.GetAwaiter().GetResult()` は、同期ブロックの `Task.Result` のより良い代替手段ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。