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;
}
}
以下是代码(c#.net 1.0)的一部分,它检查是否存在连接,并根据我希望我的应用关闭(退出) 我可以在控制台日志中看到“没有连接”,但应用程序继续运行... 如何在那里正确退出该应用程序?
答案 0 :(得分:0)
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;
}
答案 1 :(得分:0)
如果您正在编写控制台应用程序,则只需要从Main方法返回(并且不运行任何非后台线程)。 Application.Exit
仅针对Windows窗体应用程序执行工作,即使这样,也不会导致应用程序实际退出:
Exit方法停止所有线程上所有正在运行的消息循环,并关闭应用程序的所有窗口。此方法不一定强制应用程序退出
如果你正在编写一个Windows窗体应用程序,(并且你有一个主方法)那么你需要调查你的代码在调用Application.Run
之后正在做什么,这是哪里消息循环正在运行 - 从消息循环停止时返回此调用。
但请考虑一下 - 如果您的互联网检查成功,但用户的互联网连接会在之后立即下降(在您做任何有用的工作之前)。
或者由于间歇性连接而导致检查失败,但之后会立即再次使用。
您的时间不会更好地用于处理间歇性连接,并为您的用户尽最大努力吗?无论如何,您将不得不处理这些问题,为什么要让用户删除您的应用程序?