VB中疑似只能有一个Timer运行,附测试代码,请高手测试并释疑。谢谢!!
在窗体中建立2个Timer,2个Label,
当Timer1运行时,Timer2并没运行,
代码有问题,还是VB只能有一个Timer运行?
请高手测试并释疑。
谢谢!!!
测试代码如下:
Option Explicit
Dim a As Long
Dim b As Long
Dim i
Dim c
Private Sub Form_Load()
Timer1.Interval = 1
Timer2.Interval = 1000
End Sub
Private Sub Timer1_Timer()
For i = 1 To 100000000
c = c + 1
Next i
a = a + 1
Label1.Caption = a
If a = 1000 Then Timer1.Enabled = False
If a = 1000 Then Timer2.Enabled = False
End Sub
Private Sub Timer2_Timer()
b = b + 1
Label2.Caption = b
End Sub
[解决办法]
1,Timer1.Interval = 1 是不成立的,实际中肯定大于20,你自己可以测试
2,只要允许,Timer会相互执行的,不会存在不执行的情况,否则就是VB6有问题了
3,无法明白你在测试什么
[解决办法]
Timer1_Timer()运行的时间太长了,VB6是单线程程序, Timer1_Timer()独占CPU,Timer2只能等 Timer1_Timer()完了才有机会运行。
For i = 1 To 100000000
c = c + 1
doevents'加上这句就能看出timer2在正常运行。
Next i
[解决办法]
你要用2个TIMER,一个要处理很长时间的话,那就只能用多线程了,办法是有,就是麻烦点