如果我已经创建并启动了System.Threading.Timer
:如何停止运行Timer?
Dim tcb As TimerCallback = New TimerCallback(AddressOf timerRoutine)
Dim t As Timer = New Timer(tcb, Nothing, DueTime, Period)
如何停止呢?
使用System.Timers.Timer
并致电Timer.Stop()
会更容易吗?
如果我已经创建并启动了System.Threading.Timer
:如何停止运行Timer?
Dim tcb As TimerCallback = New TimerCallback(AddressOf timerRoutine)
Dim t As Timer = New Timer(tcb, Nothing, DueTime, Period)
如何停止呢?
使用System.Timers.Timer
并致电Timer.Stop()
会更容易吗?
您可以通过调用您的计时器方法Change
与Timeout.Infinite停止: 见http://msdn.microsoft.com/en-us/library/yz1c7148(v=vs.80).aspx
t.Change(Timeout.Infinite, Timeout.Infinite)
你可以做到这一点改变方法。看看在备注:
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx
一种选择是t.Dispose()
,这将处置Timer
,因此停止。
如果Dispose
被称为如下它应该等待10秒对所有排队的计时器回调前的物体的配置来完成:
Dim waitHnd As WaitHandle = New AutoResetEvent(False)
t.Dispose(waitHnd)
waitHnd.WaitOne(10000)
我要求谷歌为您提供:http://msdn.microsoft.com/ en-us/magazine/cc164015.aspx – Jan
各种定时器是不同的:http://msdn.microsoft.com/en-us/magazine/cc164015.aspx什么是“更好”(或更容易)取决于你需要什么。 –