VB6杀死计时器

时间:2017-01-03 15:16:10

标签: timer vb6

我正在使用VB6进行编程,因为我们使用的是遗留代码和硬件(外部电子设备)。

我的程序是围绕定时器构建的,我会在OS编程中使用任务。计时器一直在运行,直到他们的工作完成。设置标志并启动另一个计时器。

我想要一个控制其他定时器的监控定时器当定时器没有产生结果或正在等待永远不会发生的真实世界事件时(做循环)我想杀掉定时器。在电子产品中,我们有一个“看门狗计时器”,它检查代码是否仍在运行(并产生结果)。我想在VB6中做一个看门狗计时器。

vb6中的定时器具有Timer.interval和Timer.enabled。我无法使用这些工具杀死计时器。我可以禁止启动计时器。我知道有几种杀死循环的方法。就像计算圈数并在达到最大值时爆发。甚至检查检查标志。

有没有杀死VB6计时器的方法?如果不是最好的方法来避免无限循环?

附带问题:有没有办法列出正在运行的计时器?

1 个答案:

答案 0 :(得分:4)

您已回答了自己的问题,将.enabled设置为false将阻止下一个间隔被触发。

要在计时器已经运行时“杀死”计时器,您需要检查标志并在正在运行的方法中退出。 (没有其他方法,因为所有这一切都发生在一个线程上)

  

有没有办法列出正在运行的计时器?

Dim ctrl As VB.Control
For Each ctrl In Me
    If TypeOf ctrl Is VB.Timer Then
        Debug.Print ctrl.Name, "running: "; ctrl.Enabled And ctrl.Interval > 0
    End If
Next