[英]call HttpClient GetAsync but app freezes seconds and works as sync mode
下面是我獲取 HTML 頁面的代碼
public static async Task<string> GetUrltoHtml(string url)
{
string s;
using (var client = new HttpClient())
{
var result = client.GetAsync(url).Result;
//Console.WriteLine("!!!"+result.StatusCode);
s = result.Content.ReadAsStringAsync().Result; //break point
}
return s;
}
線
var result = client.GetAsync(url).Result;
導致應用程序凍結秒並作為同步模式工作
歡迎您的評論
根據文檔
訪問屬性的 get 訪問器會阻塞調用線程,直到異步操作完成; 相當於調用Wait方法。
所以獲取Result
是一個阻塞動作。 您應該改用await
。
s = await result.Content.ReadAsStringAsync();
(當結果准備好並且您只想獲取它時, Result
很有用。或者在某些情況下您想阻塞線程(但不推薦)。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.