如何连续ping和结果更改图像

时间:2015-02-09 19:20:15

标签: c# multithreading loops ping

希望你能帮助我。

我在解决如何循环ping代码和结果(如果为true或false)更改图像时遇到问题。

这是我的代码在点击按钮上运行,

我的目标是基本上自动化应用程序,这样用户就不必单击刷新图标,

我已经阅读了一下,我想我可以使用while循环,但我不确定如何使用它进行睡眠。

另一种方法是使用一个带睡眠的线程吗?

我也曾在MSDN上要求尽可能多地获得反馈。

    //Declaration of Global Variables (IP's)
    public static string IP1, IP2, IP3;

    //Method Setting Variables(IP's)
    public static void setIP()
    {

        IP1 = Properties.Settings.Default.settingIP1;
        IP2 = Properties.Settings.Default.settingIP2;
        IP3 = Properties.Settings.Default.settingIP3;
    }

    //Method running Ping command
    public static bool PingTest(string toPing)
    {
    string host = toPing;
    bool result = false;
    Ping p = new Ping();

    try
    {
        PingReply reply = p.Send(host, 3000);
        if (reply.Status == IPStatus.Success)
            return true;
    }
    catch { }
    return result;
    }

    //Refreshes IP1 then changes label to result
    private void btnRefreshIP1_Click(object sender, RoutedEventArgs e)
    {
        setIP();
        bool isConnected = false;
        isConnected = PingTest(IP1);

        if(isConnected == true)
        {
            lblsIP1.Foreground = Brushes.White;
            lblsIP1.Content = "Online";
        }
        else
        {
            lblsIP1.Foreground = Brushes.Red;
            lblsIP1.Content = "Offline";
        }

    }

0 个答案:

没有答案