C# 如何连续ping并更改图像的结果
希望你能帮我 我遇到了一个问题,如何循环一段ping代码,如果真或假改变了一幅图像,结果会如何 这是我的代码,按一下按钮 我的目标是基本上自动运行应用程序,这样用户就不必单击刷新图标 我读了一些书,我想我可以使用while循环,但我不确定如何使用sleep 另一种方法是使用睡眠线程 我也在MSDN上要求获得尽可能多的反馈C# 如何连续ping并更改图像的结果,c#,multithreading,loops,ping,C#,Multithreading,Loops,Ping,希望你能帮我 我遇到了一个问题,如何循环一段ping代码,如果真或假改变了一幅图像,结果会如何 这是我的代码,按一下按钮 我的目标是基本上自动运行应用程序,这样用户就不必单击刷新图标 我读了一些书,我想我可以使用while循环,但我不确定如何使用sleep 另一种方法是使用睡眠线程 我也在MSDN上要求获得尽可能多的反馈 //Declaration of Global Variables (IP's) public static string IP1, IP2, IP3;
//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";
}
}
计时器!这对您有意义吗?使用Dispatcher定期触发事件。我个人会将其移动到一个单独的类中,将ping放入计时器,存储当前状态,并为丢失、获得、成功、失败、更改等添加自定义事件。然后您可以轻松地将映像更改代码附加到事件处理程序。如果你正在监视许多站点,那么它将变得非常好用。嘿,伙计们,谢谢你们的回复!为了回答Alexei,我所说的automise是指用户不必点击刷新按钮,cope只需在运行时循环,是的,我不确定我的电脑是否更正了您所说的话,您正在监控3个IP-如果您先将其移动到自己的类中,您只需创建3个实例即可,简化了操作。类不仅仅是组织代码的一种方式。