2015-05-09 64 views
-1

我需要每5分钟计时器上升一次事件,但不仅5分钟它必须在00:00,00:05,00:10,00:15 .... 23:55和00:00。System.Timers.Timer每5分钟上升事件

服务器会每5分钟发送一次信息,但是当服务器启动时,他需要计算直到第一次事件发生时剩下多少时间,之后我不能设置5分钟的时间间隔,因为我失去了每一次上升约3-7毫秒。所以在几天之后,我失去了很多时间。因为我需要计算每次事件发生后事件的上升。因为当服务器必须发生事件时,我在数据库表中获得了时间(00:00,00:05,... 23:55),该表也可以更改。

安妮的建议将有所帮助。

+2

可能的重复的[C# - 替代System.Timers.Timer,在特定时间调用函数](http://stackoverflow.com/questions/2699556/c-sharp-alternative-to-system-timers -ti-to-call-a-function-at-a-specific-t) –

回答

0

在你将要设置定时器的INTERVALL下一次的那一刻,你应该阅读系统时钟和计算剩余时间到下一个5分钟“嘀”

例子:

如果是2:30:10你应该设置4分50秒的间隔。

+0

我现在这样做了,但是当我每次使用事件时都会使用1000毫秒左右的范围。至少需要100毫秒的时间。 – user3770538

+0

好吧,然后提前1秒事件并在事件处理程序内部执行一些更精细的时机,可能是使用紧密的Sleep()循环。 – DrKoch