2013-06-24 39 views
8

我有間隔3600000一個定時器,它可被轉換爲一個小時,所以當我做在啓動後立即執行計時器?

timer.Start() 

它將它將在下文中每隔一小時從在下一個小時開始執行代碼

private void timer_Tick(object sender, EventArgs e) 
{ 
    ..... 
} 

但如果我希望它也被執行第二個我叫timer.Start(),然後每小時後?

回答

10

最簡單的辦法是隻調用方法:

timer.Start(); 
timer_Tick(null, EventArgs.Empty); // Simulate a timer tick event 

這實際上不觸發計時器,但立即調用您的處理程序,有效地模擬一個「現在」事件。

0

只需在調用Start()之後,我會立即調用該函數。

+0

睡一會兒有什麼意義? – Servy

+0

固定。不正確地閱讀問題。 – iefpw

1

據我所知System.Threading.Timer確實是你想要的。

它允許您指定何時必須發生第一次調用,然後指定調用之間的時間間隔。

因此,如果您將第一次調用設置爲0毫秒,並將間隔設置爲一小時,則會立即觸發,然後每隔一小時觸發一次。

duetime參數 類型:時間System.Int32量回調 被調用之前,以毫秒爲單位來延遲。指定Timeout.Infinite以防止啓動 計時器。指定零(0)立即啓動計時器。

period類型:System.Int32調用之間的時間間隔 回調,以毫秒爲單位。指定Timeout.Infinite禁用週期性信號。