簡體   English   中英

調用 HttpClient GetAsync 但應用程序凍結秒並作為同步模式工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM