2012-07-02 74 views
2

有人可以給我一個代碼,如何在規定時間已過提高事件。引發事件

,比如我有這種時候:

08:00 12:00 20:30 23:00 

我如何訂閱事件,提高在這些時間?

+1

你想要檢查的頻率是當前時間==指定的時間? – abatishchev

+2

您可能想使用Windows計劃任務。 –

回答

3

試試下面的辦法:

DateTime target = ... 
int interval = (int)(target - DateTime.Now).TotalMilliseconds; 
var timer = new System.Timers.Timer(interval); 
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); 
timer.Enabled = true; 
+0

我想你的意思'INT間隔=(INT)(目標 - DateTime.Now).TotalMilliseconds;'(你不想只是毫秒部分,忽略secends和分) –

+0

@HansKesting:謝謝!看起來不錯。 – abatishchev

0

我使用的應用程序的方法是使每一個幾分鐘觸發一個計時器。當它接近目標時間(例如當前時間+間隔>目標時間)時,間隔變小。

對於特定的應用程序,精確的精度不是那麼重要,所以我沒有讓間隔獲得小於500毫秒。

最後,當你認爲你是足夠接近,你做你需要當時的任務。

0

嘗試Quartz.Net
它可以在指定的時間運行你需要的任何東西,其中之一是事件的解除。

0

使用可以在MSDN可以發現這是一個System.Timers.Timer

詳細信息。

事件何時熄滅,引發該事件並重新編程定時器再次爲您的下一個事件熄滅。