注册 登录
编程论坛 VB6论坛

VB实现定时中断问题!!!!!

a85921819 发布于 2015-07-04 22:40, 604 次点击
VB中如何实现定时器中断     就是程序当前在执行一段循环语句时,每过一秒就进行中断,跳出循环执行其它语句!执行完了在返回循环语句执行
5 回复
#2
vbhello2015-07-04 23:35
有一个思路你试试:
Apoint:
    atimer = timer    '记录时间
    循环…………
    if timer - atimer >= 1 then exit loop
    …………语句
    其它语句…………
goto Apoint
#3
yangfrancis2015-07-05 21:02
看来楼主的本意不是想让程序跳出循环去执行其他语句哦。自己都说的执行完其他语句还要回到循环啊。为什么不就在循环体内部加入if条件,判断由计数器计秒数得到的值,决定是否进入条件块去执行其他语句。
#4
风吹过b2015-07-05 23:04
VB在使用定时器时,应该不会停止循环的执行。
这时,定时器执行另一段代码时,应该是由系统在轮流调用这段代码和循环代码。

再说,循环,只能跳出,不能跳入。

我想到的是变通方法

do
if 全局标志变量=真 then
    循环体
    if    判断退出条件 then exit do
else
    DoEvents
end if
loop

当定时器时,先把 全局标志变量 设置为真,那么循环还在执行,但执行命令就剩一句 DoEvents ,这样来暂停循环的执行。
定时器里代码执行完成后,再设置全局标志变量为假,那么循环就继续了。
#5
lianyicq2015-07-06 09:07
好象和风版的差不多,试试看行不行
程序代码:
Option Explicit
Dim finish As Boolean
Private Sub Form_Load()
  Dim i As Integer
  Form1.Show
  For i = 1 To 10
    While (finish = False)
      DoEvents
    Wend
    Form1.Caption = i'循环体内要执行的代码
    finish = False
    Timer1.Enabled = True
  Next
End Sub

Private Sub Timer1_Timer()
  Timer1.Enabled = False
  '添加定时到需完成的代码
  finish = True
End Sub

1