VB中疑似只能有一个Timer运行,附测试代码,请高手测试并释疑。谢谢!!

lzlichun 2013-08-09 10:25:25
在窗体中建立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
...全文
204 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yachong 2013-08-09
  • 打赏
  • 举报
回复
Timer1_Timer()运行的时间太长了,VB6是单线程程序, Timer1_Timer()独占CPU,Timer2只能等 Timer1_Timer()完了才有机会运行。 For i = 1 To 100000000 c = c + 1 doevents'加上这句就能看出timer2在正常运行。 Next i
VisualFreeBasic 2013-08-09
  • 打赏
  • 举报
回复
1,Timer1.Interval = 1 是不成立的,实际中肯定大于20,你自己可以测试 2,只要允许,Timer会相互执行的,不会存在不执行的情况,否则就是VB6有问题了 3,无法明白你在测试什么
  • 打赏
  • 举报
回复
你要用2个TIMER,一个要处理很长时间的话,那就只能用多线程了,办法是有,就是麻烦点
lzlichun 2013-08-09
  • 打赏
  • 举报
回复
不麻烦老师了,经测试: Timer会等待Timer过程中的Call执行完后才执行下一行。
lzlichun 2013-08-09
  • 打赏
  • 举报
回复
引用 2 楼 yachong 的回复:
Timer1_Timer()运行的时间太长了,VB6是单线程程序, Timer1_Timer()独占CPU,Timer2只能等 Timer1_Timer()完了才有机会运行。 For i = 1 To 100000000 c = c + 1 doevents'加上这句就能看出timer2在正常运行。 Next i
再请教老师一个可能很弱智的问题: Timer会等待Timer过程中的Call执行完后才执行下一行,还是不等待Call执行完就执行下一行?
lzlichun 2013-08-09
  • 打赏
  • 举报
回复
引用 2 楼 yachong 的回复:
Timer1_Timer()运行的时间太长了,VB6是单线程程序, Timer1_Timer()独占CPU,Timer2只能等 Timer1_Timer()完了才有机会运行。 For i = 1 To 100000000 c = c + 1 doevents'加上这句就能看出timer2在正常运行。 Next i
谢谢老师指教! 这下明白了!

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧