2013-11-04 125 views
0

我有一個c#windows服務,每5分鐘執行一個進程。定時器有兩個執行任務的時間間隔

我不想創建其他進程每隔30分鐘執行一次任務,那麼是否有可能在同一個timer_Elapsed事件中執行該邏輯?任何線索?

非常感謝,

+3

我不是100%確定你爲什麼不使用計劃任務。 –

+0

保持計數,然後每6次執行一次任務B並重置計數? –

回答

0

嗯,你可以只使用一個計數器,並檢查它反對6(5000分之30000),完成後重新回零。

private int counter = 0; 
private void TimerCallback() 
{ 
    counter++; 
    if(counter >=6) 
    { 
     //Your 30 seconds code here 
     counter = 0; 
    } 
} 
1

你可以每次增加一個變量的計時器到期,並且當該變量達到6,你把它重置爲0,並執行你的「一次每30分鐘還」代碼。另外,據我所知,創建一個新的(winform)定時器並不會創建一個新的線程。

int TimerVariable=0; 
TimerEvent(object sender,eventargs e) 
{ 
    TimerVariable++; 
    if(TimverVariable>=6) 
    { 
     //Execute the once every 30 min code 
    } 
    //Execute the once every 5 min code. 
} 
2

如何使用計時器?  

+0

+1這是用定時器完成的最乾淨的方法。 –

+0

這是非愚蠢的做法! – spender

相關問題