2012-11-15 100 views
0

如果我已经创建并启动了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()会更容易吗?

+0

我要求谷歌为您提供:http://msdn.microsoft.com/ en-us/magazine/cc164015.aspx – Jan

+0

各种定时器是不同的:http://msdn.microsoft.com/en-us/magazine/cc164015.aspx什么是“更好”(或更容易)取决于你需要什么。 –

回答

0

一种选择是t.Dispose(),这将处置Timer,因此停止。

如果Dispose被称为如下它应该等待10秒对所有排队的计时器回调前的物体的配置来完成:

Dim waitHnd As WaitHandle = New AutoResetEvent(False) 
t.Dispose(waitHnd) 
waitHnd.WaitOne(10000)