抛出WebException时await client.OpenReadTaskAsync()导致GUI挂起?

时间:2018-02-19 09:13:17

标签: c# async-await system.net.webexception

以下代码我用来检查每2分钟后机器的互联网连接,它工作正常,但问题是当OpenReadTaskAsync()抛出时,应用程序的GUI挂起500ms-1s-2s WebException,只有当WIFI打开并连接到网络但该网络上没有互联网时才会发生这种情况。当WIFI未连接到任何网络或WIFI关闭时,它不会挂起。 我正在打电话给await OpenReadTaskAsync(),为什么它仍然是挂起应用程序的原因?

Uri uri = new Uri("http://clients3.google.com/generate_204");
try
    {
     using (var client = new WebClient())
     {
         using (await client.OpenReadTaskAsync(uri))
         {
             return true;
         }
     }
}
catch(WebException ex)
{
    MessageBox.Show(ex.ToString());
    return false;
}

我正在调用类似

的方法
nointernet = await MyNetworking.CheckForInternetConnection() ? false : true;

0 个答案:

没有答案