C# 如果有';没有互联网连接
下面是代码(c#.net 1.0)的一部分,它检查是否存在连接,并根据我希望我的应用程序关闭(退出)的情况而定 我可以在控制台日志中看到“没有连接”,但应用程序仍在运行。。。C# 如果有';没有互联网连接,c#,C#,下面是代码(c#.net 1.0)的一部分,它检查是否存在连接,并根据我希望我的应用程序关闭(退出)的情况而定 我可以在控制台日志中看到“没有连接”,但应用程序仍在运行。。。 如何在那里正确退出该应用程序?如果您正在编写控制台应用程序,您只需要它从其主方法返回(并且不运行任何非后台线程)。仅对windows窗体应用程序执行工作,即使如此,也不会导致应用程序实际退出: if(IsConnected() == false) { Console.WriteLine("no connection
如何在那里正确退出该应用程序?如果您正在编写控制台应用程序,您只需要它从其主方法返回(并且不运行任何非后台线程)。仅对windows窗体应用程序执行工作,即使如此,也不会导致应用程序实际退出:
if(IsConnected() == false)
{
Console.WriteLine("no connection");
System.Windows.Forms.Application.Exit();
}
InitializeComponent();
...
public static bool IsConnected()
{
System.Uri Url = new System.Uri("http://google.com");
System.Net.WebRequest WebReq;
System.Net.WebResponse Resp;
WebReq = System.Net.WebRequest.Create(Url);
try
{
Resp = WebReq.GetResponse();
Resp.Close();
WebReq = null;
return true;
}
catch
{
WebReq = null;
return false;
}
}
Exit方法停止所有线程上所有正在运行的消息循环,并关闭应用程序的所有窗口。此方法不一定强制应用程序退出
如果您正在编写一个windows窗体应用程序(并且您有一个main方法),那么您需要调查调用应用程序后代码正在执行的操作。Run
,这是消息循环正在运行的地方-此调用在消息循环停止时返回
但是如果你是网际网路检查成功了,但是用户的互联网连接会立刻下降(在你做任何有用的工作之前)。
或者检查因间歇性连接而失败,但随后立即可用
难道你的时间不应该花在处理断断续续的连接上,并尽最大努力为你的用户服务吗?无论如何,您都必须处理这些问题,为什么要给用户理由删除您的应用程序?这很好,但是System.Windows.Forms.application.Exit();或者干脆关上();不要退出我的应用程序。。。
public static bool IsConnected()
{
HttpWebRequest HttpWReq = (HttpWebRequest)WebRequest.Create("http://www.google.com");
HttpWebResponse HttpWResp = (HttpWebResponse)HttpWReq.GetResponse();
bool isconnected = (HttpWResp.StatusCode == HttpStatusCode.OK);
HttpWResp.Close();
return isconnected;
}