2016-07-05 27 views
1

我有一段代碼,從web服務加載數據:爲什麼HttpClient.PostAsync無法在WPF環境中返回?

 client = new HttpClient(handler) {Timeout = TimeSpan.FromSeconds(60)}; 
     var post = await client.PostAsync(url, new FormUrlEncodedContent(parameters)); 

當我在獨立的應用程序運行這個 - 其中一個是WPF,另一個是的WinForms - 這工作完全確定。

但是,我也有一個嵌入在更大的WPF應用程序中的版本。在這兩種情況下,當使用嵌入式版本時,應用程序掛在帖子行上。

我已經檢查了網絡服務端和小提琴手,它肯定發送了請求,並且返回響應。似乎PostAsync只是沒有得到返回的響應,所以無法進展。有什麼我需要做的,以使其發揮作用?

所有的HTTP請求和響應看起來都很好,所以我不認爲這與此有關。這只是捕獲這種反應。

+0

您可能會運行到死鎖。還請提供周圍的代碼,否則很難說出問題的可能性。 –

+0

您正在呼叫結果或等待某處。 – usr

回答

2

我最近也有類似的問題,它是通過使用ConfigureAwait(false),這樣解決:

var post = await client 
       .PostAsync(url, new FormUrlEncodedContent(parameters)) 
       .ConfigureAwait(false); 
+0

謝謝!它也適用於我!這是否有需要添加的原因? –

+1

@AdityaPatil閱讀這裏:https://stackoverflow.com/a/13494570/3932049 –

相關問題