Timer VB6杀戮计时器

Timer VB6杀戮计时器,timer,vb6,Timer,Vb6,我用VB6编程,因为我们使用的是遗留代码和硬件(外部电子设备) 我的程序是围绕计时器构建的,在那里我可以在操作系统编程中使用任务。计时器一直运行,直到他们的工作完成。设置一个标志并启动另一个计时器 我想要一个监控计时器,当计时器不产生结果或等待一个永远不会发生的真实事件(Do while loop)时,控制其他计时器。我想要终止计时器。在电子产品中,我们有一个“看门狗定时器”,它检查代码是否仍在运行(并产生结果)。我想用VB6做一个看门狗定时器 vb6中的计时器已启用Timer.interval

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

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

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

vb6中的计时器已启用Timer.interval和Timer.enabled。我不能用这些工具来打发时间。我可以禁止计时器启动。我知道一些杀死循环的方法。比如计算圈数,在达到最大圈数时突破。甚至检查一个标志

有没有办法杀死VB6计时器?如果不是,那么避免无限循环的最佳方法是什么?


旁白:有没有办法列出正在运行的计时器

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

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

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

加一。这是一个好办法。它表示“每当
定时器
控件的
Enabled
属性设置为
True
Interval
属性大于0时,定时器事件将等待
Interval
属性中指定的时间段。”
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