控制台C#检查互联网可用性,然后等待它不可用

本文关键字:等待 然后 检查 互联网 可用性 控制台 | 更新日期: 2023-09-27 18:01:01

我一直在搜索代码,如果两者之间的互联网连接中断,这些代码将对我有所帮助。

我有一个控制台应用程序,它从数据库中获取数据并批量发送邮件。现在,当发送邮件时,如果互联网连接失败,我想等到互联网可用。

我这里有好消息

    public static void ConnectToPUServer()
    {
        var client = new WebClient();
        while (i < 500 && networkIsAvailable)
        {
            string html = client.DownloadString(URI);
            //some data processing
            Console.WriteLine(i);
            i++;
            URI = "http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/" + i + "/";
        }
        Console.WriteLine("Complete.");
        writer.Close();
   }
    static void NetworkChange_NetworkAvailabilityChanged(object sender,NetworkAvailabilityEventArgs e)
    {
        networkIsAvailable = e.IsAvailable;
        if (!networkIsAvailable)
        {
             Console.WriteLine("Internet connection not available! We resume as soon as network is available...");
        }
        else
        {
             ConnectToPUServer();
        }
    }

这不是我想要的。但我想应用类似的东西。有人能帮我如何实现吗?我的意思是什么是ConnectToPUServer,何时执行NetworkChange_NetworkAvailabilityChanged,使用什么命名空间?

控制台C#检查互联网可用性,然后等待它不可用

您可以使用下面提到的代码,因为您必须使用

using System.Net.NetworkInformation;

public partial class MainWindow : Window
{
    public bool IsAvailable { get; set; }
    public MainWindow()
    {
        InitializeComponent();
        NetworkChange.NetworkAvailabilityChanged += NetworkChange_NetworkAvailabilityChanged;
    }
    void NetworkChange_NetworkAvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
    {
        IsAvailable = e.IsAvailable;
    }

    private void BrowseButton_Click(object sender, RoutedEventArgs e)
    {
        if (IsAvailable)
        {
            WebBrowser1.Navigate(TextBox1.Text);
        }
        else
        {
            MessageBox.Show("Your Popup Message");
        }
    }
}