计时器运行的原理与大量计时器不同步问题
一个主计时器控制3个子计时器,interval均为100ms,目标是按循序print 1,2,3
点击command1后,下列代码的结果是print:2,1,3 显然不是自己想要的。
1.如果将横线处sleep 100 改为sleep 200 则正常print 1,2,3。
2.如果均不加延时,则完全随机print
在编写程序中经常需要用到大量计时器,因而也经常出现奇奇怪怪的不同步问题,总而言之,还是对timer的运行原理理解不够。
个人主观的认为:
1.不涉及外部计时器的内部指令是从上到下执行的,
2.而控制外部计时器时,则与外部计时器间隔有关,有时同步有时不同步。
恳请高手释疑
Private Sub Command1_Click()
Timer.Enabled = True
End Sub
Private Sub Timer_Timer()
Timer1.Enabled = True
DoEvents
Sleep 100 ---------------------------------------
Timer2.Enabled = True
DoEvents
Sleep 100
Timer3.Enabled = True
Timer.Enabled = False
End Sub
Private Sub Timer1_Timer()
Print "1"
Timer1.Enabled = False
End Sub
Private Sub Timer2_Timer()
Print "2"
Timer2.Enabled = False
End Sub
Private Sub Timer3_Timer()
Print "3"
Timer3.Enabled = False
End Sub