我有一個Timer類的問題,因爲在調用Dispose()之前有一個定時器會觸發的機會,因爲您可能會從某個其他線程調用Dispose()。你可能有這樣的事情:處理System.Timers.Timer的正確方法是什麼?
Public Sub TimerTick() Handles itsTimer.Elapsed
Do Something
End Sub
然後從代碼的其他地方,當你的應用程序做,你叫
itsTimer.Dispose()
我能想到這樣做的唯一方法是:
Public Sub SomeMethod()
SyncLock(itsTimer.SynchronizingObject)
itsTimer.Dispose()
End SyncLock
ENd Sub
這不是一件好事情要做esp。因爲我正在鎖定我正在處理的對象。我可以創建自己的鎖和同步鎖,但有沒有簡單的方法?
如何取消註冊「句柄」條款? – Denis 2011-04-18 18:43:52
@Denis - 你沒有。用'AddHandler'註冊事件。 – Oded 2011-04-18 18:44:59
實際上,即使使用Handles設置了事件,您也可以使用RemoveHandler取消註冊。 – 2011-04-18 19:13:58