2015-05-09 92 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