2

So here is the breakdown of my program. It is a tool that measures latency to a server on a specified port.

So currently I have a manual check to find the server on a specific port. Then I ping this server every 500 ms and update some GUI elements based on this ping.

I have the pinging done in a background thread and I call thread.sleep(500) after every ping.

Would it be better to use timers for these events?

I want to check for the server every 5 seconds, and ping every 500 ms.

4

3 回答 3

1

使用 2 个计时器。休眠线程是可怕的性能。当 5 秒定时器执行时,禁用 500 毫秒定时器。执行完成后,启用它。这是最简单和最有效的方法,IMO。

或者,如果这无关紧要,请不要禁用计时器。只要继续前进,你就会没事的。

于 2012-12-15T18:07:51.590 回答
0

当您使用睡眠时,您的任务需要多长时间并不重要。睡眠 500 毫秒,执行 5 小时的任务,然后再次睡眠。

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

于 2012-12-15T17:39:29.587 回答
0

您可以使用任务计划程序 api 并设置一个时间任务,该任务将在接下来的 5 秒后启动应用程序。很好的托管包装器:taskscheduler.codeplex.com

于 2012-12-15T17:28:34.690 回答