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

C# 在指定的时间间隔后调用事件,c#,multithreading,timer,C#,Multithreading,Timer,这是我的节目的细目。它是一种工具,用于测量指定端口上服务器的延迟 因此,目前我有一个手动检查,以找到特定端口上的服务器。然后我每500毫秒ping一次这个服务器,并根据这个ping更新一些GUI元素 我在后台线程中执行ping,每次ping后我都调用thread.sleep(500) 对这些事件使用计时器是否更好 我想每5秒检查一次服务器,每500毫秒ping一次。你可以使用任务调度器api并设置一次任务,在接下来的5秒后启动应用程序。尼斯托管wrraper:taskscheduler.code

这是我的节目的细目。它是一种工具,用于测量指定端口上服务器的延迟

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

我在后台线程中执行ping,每次ping后我都调用thread.sleep(500)

对这些事件使用计时器是否更好


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

你可以使用任务调度器api并设置一次任务,在接下来的5秒后启动应用程序。尼斯托管wrraper:taskscheduler.codeplex.com

当你使用睡眠时,不管你的任务需要多长时间。睡眠500毫秒,做一个5小时的任务,然后再睡觉


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

使用两个计时器。休眠线程是糟糕的性能。当5秒计时器执行时,禁用500毫秒计时器。执行完成后,启用它。这是最简单和最有效的方法,国际海事组织

或者,如果没有关系,不要禁用计时器。只要坚持下去,你就会好起来。

“会更好吗…”定义“更好”。一般来说,以最简单、最可维护的方式完成任务是最好的方式。