我有一個c#windows服務,每5分鐘執行一個進程。定時器有兩個執行任務的時間間隔
我不想創建其他進程每隔30分鐘執行一次任務,那麼是否有可能在同一個timer_Elapsed事件中執行該邏輯?任何線索?
非常感謝,
我有一個c#windows服務,每5分鐘執行一個進程。定時器有兩個執行任務的時間間隔
我不想創建其他進程每隔30分鐘執行一次任務,那麼是否有可能在同一個timer_Elapsed事件中執行該邏輯?任何線索?
非常感謝,
嗯,你可以只使用一個計數器,並檢查它反對6
(5000分之30000),完成後重新回零。
private int counter = 0;
private void TimerCallback()
{
counter++;
if(counter >=6)
{
//Your 30 seconds code here
counter = 0;
}
}
你可以每次增加一個變量的計時器到期,並且當該變量達到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.
}
我不是100%確定你爲什麼不使用計劃任務。 –
保持計數,然後每6次執行一次任務B並重置計數? –