【发布时间】:2014-05-04 15:54:46
【问题描述】:
之前我正在寻找一些检查互联网连接的可行方法,同时我希望它不会使我的应用程序反应迟钝,我发现了像这样的代码的各种示例:
public static bool CheckForInternetConnection()
{
try
{
using (var client = new WebClient())
using (var stream = client.OpenRead("http://www.google.com"))
{
return true;
}
}
catch
{
return false;
}
}
使用 WebClient,但这些解决方案的主要缺陷是它们冻结了整个应用程序,并且由于我每隔几分钟进行一次连接测试,这种行为是非常不受欢迎的。
我想要实现的是让那段代码以它可以执行的方式工作,但它会让应用程序等待响应,同时它不会使 UI 无响应。
干杯 第M个
编辑:
我希望这段代码可以从多个代码路径中使用,最好是作为某个静态类的静态方法。作为后台工作人员这样做确实在某种程度上限制了它。我会尝试使用单独的线程,看看它是否会带来我想要达到的效果。
我只想了解调用上述简单方法期间发生的所有事情(延迟,所有其他操作等待方法完成),而不会阻塞 UI,因此在检查连接时,应用程序正在等待但不会挂起
【问题讨论】:
-
在不同的线程上检查它...?
标签: c# .net connection