.Net我怎么能这样做? (使用定时器)
有WinForms应用程序。 其功能(例如) - Ping公司域中的机器。 让我们想象一下,用户在应用程序中为ping创建了两个对象 - Comp1和Comp2。 最主要的功能 - 程序应该给用户一个选择 - 通过你需要ping什么样的计算机intverval。 例如,Comp1用户的可用性想要每隔15分钟监控每分钟和Comp2可用性。我如何在.NET上实现它?以编程方式为每个新的Comp [编号]计时器对象创建?.Net我怎么能这样做? (使用定时器)
也许有人已经遇到了这样的挑战,一个大请求帮助我..
如果你想看看是否是Comp2的访问(网络明智)从器Comp1,你可以在器Comp1
运行下面的代码Ping ping = new Ping();
PingReply reply = new Ping().Send(Comp1IP);
return reply.Status == IPStatus.Success
谢谢,我知道我可以做到这一点... 我正在寻找许多定时器的desicion ... –
另一个想法 - 只创建一个通用计时器tmrTimer,它将每分钟运行一次。 应用程序将保留数据库/内存中每个Comp [number]刷新间隔和上次ping的时间。 在每分钟行程tmrTimer_Tick将在每个小样[数字]的所有的数据进行检查。 如果差值(当前时间 - 最后平比较[数字])>比这个组合[数字]所需的刷新间隔 - 应用程序将坪比较[数字],更新的最后一个平的当前时间他...
是不是太容易了?
你必须使用2个计时器。
做一个WinForm,允许用户使用的NumericUpDown控件选择时间间隔,或者找到更好的方法。
在指定毫秒(60000 = 1分钟,900000 = 15分钟)Tick事件设定的时间间隔将通过
启动平 - 平类:
public static int GetPing(string ip, int timeout)
{
int p = -1;
using (Ping ping = new Ping())
{
PingReply reply = ping.Send(_ip, timeout);
if (reply != null)
if (reply.Status == IPStatus.Success)
p = Convert.ToInt32(reply.RoundtripTime);
}
return p;
}
-Command提示
这是你如何通过CMD发送命令,这样你就不会使用.NET framwework,但建于工具的窗口:
string strCmdText;
strCmdText= "timeout 60 & ping 127.0.0.1";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);
超时60将等待60秒钟后,它会ping通。然后,屏幕上将显示ping是否失败
要仅使用一个计时器,请将滴答滴答设置为一分钟,并在滴答滴答中增加一个计数器变量。当计数器15的模数为0(计数器%15 == 0)时,每次打勾(1分钟)就会ping COMP1,您将ping COMP2
使用您的场景的调度计时器。 – VVN
请阅读[问]。您的标题*尖叫*请downvote我 – Plutonix
Pluonix,谢谢!我将在下次考虑它 –