我有一个在指定时间后引发事件的类(它使用System.Timers.Timer
内部)。在我的测试代码中,我创建了一个Stopwatch
在创建类之前启动的,并设置事件的回调来停止它Stopwatch
。然后,我阻止了直到Not Stopwatch.IsRunning
。很简单,对吧?
我原来的阻止代码是
While Stopwatch.IsRunning
End While
但我发现像这样的空while循环永远不会让我的回调触发!一旦我将调试代码放入while循环,它就起作用了!:
Dim lastSecond As Integer = 0
While sw.IsRunning
If (Date.Now.Second > lastSecond) Then
lastSecond = Date.Now.Second
Console.WriteLine("blocking...")
End If
End While
是什么导致了这种奇怪的行为,更重要的是,我可以在阻止部分中放入允许事件触发的最简单代码是什么?