在指定的时间间隔后调用事件

时间:2012-12-15 17:25:44

标签: c# multithreading timer

所以这是我的计划的细分。它是一种测量指定端口上服务器延迟的工具。

所以目前我有一个手动检查来查找特定端口上的服务器。然后我每隔500毫秒ping这个服务器并根据此ping更新一些GUI元素。

我在后台线程中完成了ping操作,并在每次ping后调用thread.sleep(500)。

在这些活动中使用计时器会更好吗?

我想每5秒检查一次服务器,每隔500毫秒ping一次。

3 个答案:

答案 0 :(得分:1)

使用2个计时器。睡觉线程是可怕的表现。执行5秒定时器时,禁用500 ms定时器。完成执行后,启用它。这是最简单,最有效的方法,IMO。

或者,如果无关紧要,请不要禁用计时器。只要保持两者,你就可以了。

答案 1 :(得分:0)

您可以使用任务计划程序API并设置一次性任务,该任务将在接下来的5秒后启动应用程序.Nice managed wrraper:taskscheduler.codeplex.com

答案 2 :(得分:0)

当您使用睡眠时,任务需要多长时间并不重要。睡500个小时,做5个小时的任务,然后再睡一觉。

如果您使用计时器,则必须处理您的任务可能与下一个计时器事件的触发重叠的可能性。这让事情变得更复杂。