なぜSynchronizationContext.Currentがnullの場合にTask.Wait()とTask.Resultを呼び出すのが100%安全でないのですか?SynchronizationContext.Currentがnullの場合、Task.Waitを安全に使用できますか?
私はマルチスレッドで同期サービスを提供しています。同期メソッドの1つをHttpClient.PostAsXmlAsyncの呼び出しで置き換えます。実装は.Resultを使用して同期メソッドに変換し、プロジェクト全体の変更を防ぎます。しかし、私たちはよく文書化されている典型的なデッドロックの問題を抱えています。
同期コンテキストがないとデッドロックが発生する可能性があります。
おそらく少なくともいくつかのコードを投稿することができます。サービスとは、Windowsサービスを意味しますか? – Evk
@エヴァーク - おそらくWebサービスを意味する – Zegar
なぜ非同期メソッドを最初に使用しているのですか?同期操作を実行する場合は、最初から本質的に同期メソッドを使用してください。とにかく待つつもりなら、いくつかのメソッドを非同期にする目的はありません。どちらか、またはサービスハンドラを非同期にするだけです。 – Servy