Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果有';没有互联网连接_C# - Fatal编程技术网

C# 如果有';没有互联网连接

C# 如果有';没有互联网连接,c#,C#,下面是代码(c#.net 1.0)的一部分,它检查是否存在连接,并根据我希望我的应用程序关闭(退出)的情况而定 我可以在控制台日志中看到“没有连接”,但应用程序仍在运行。。。 如何在那里正确退出该应用程序?如果您正在编写控制台应用程序,您只需要它从其主方法返回(并且不运行任何非后台线程)。仅对windows窗体应用程序执行工作,即使如此,也不会导致应用程序实际退出: if(IsConnected() == false) { Console.WriteLine("no connection

下面是代码(c#.net 1.0)的一部分,它检查是否存在连接,并根据我希望我的应用程序关闭(退出)的情况而定 我可以在控制台日志中看到“没有连接”,但应用程序仍在运行。。。
如何在那里正确退出该应用程序?

如果您正在编写控制台应用程序,您只需要它从其主方法返回(并且不运行任何非后台线程)。仅对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;
}