嗨我已經創建了一個Windows服務,並且在那裏有兩個不同的計時器變量。第一個每5秒發射一次,然後做它需要做的事情。第二個每30秒發射一次。在同一代碼中以不同的時間間隔觸發兩個不同的計時器變量問題
我確保當函數得到執行時,禁用兩個定時器,並在函數完成後啓用。
我的問題是我的第二個更長的時間(30秒)計時器從不會觸發第一個射擊。我在3個月前創建了這項服務,到現在爲止工作情況良好。但是現在我沒有看到定時器在我創建的一個簡單的Windows應用程序中正常工作以測試其工作。
timerLonger= New System.Timers.Timer()
timerLonger.Interval = 30000
timerLonger.Enabled = True
timerShorter= New System.Timers.Timer()
timerShorter.Interval = 5000
timerShorter.Enabled = True
AddHandler timerLonger.Elapsed, New System.Timers.ElapsedEventHandler(AddressOf Process1)
AddHandler timerShorter.Elapsed, New System.Timers.ElapsedEventHandler(AddressOf Process2)
Sub Process1()
timerLonger.Enabled = False
timerShorter.Enabled = False
DoProcessing1()
timerShorter.Enabled = True
timerLonger.Enabled = True
End Sub
Sub Process2()
timerLonger.Enabled = False
timerShorter.Enabled = False
DoProcessing2()
timerShorter.Enabled = True
timerLonger.Enabled = True
End Sub
可能在添加處理程序後設置'Enabled'?另一方面,更可能的原因可能是線程問題。請參閱[文檔](http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx)。我認爲你應該每個線程只使用一個計時器。 – 2011-03-31 17:36:11