我使用 VB6 进行编程,因为我们使用的是遗留代码和硬件(外部电子设备)。
我的程序是围绕计时器构建的,我将在操作系统编程中使用任务。计时器一直运行,直到其工作完成。设置一个标志并启动另一个计时器。
我想要一个监督计时器来控制其他计时器当计时器没有产生结果或正在等待永远不会到来的现实世界事件(Do while 循环)时,我想杀死计时器。在电子产品中,我们有一个“看门狗定时器”,它检查代码是否仍在运行(并产生结果)。我想用VB6做一个看门狗定时器。
vb6中的定时器有Timer.interval和Timer.enabled。我无法用这些工具杀死计时器。我可以禁止计时器启动。我知道有几种杀死循环的方法。就像计算圈数并在达到最大值时爆发一样。或者甚至检查检查标志。
有没有办法杀死 VB6 定时器?如果不是,避免无限循环的最佳方法是什么?
附带问题:有没有办法列出正在运行的计时器?
你已经回答了你自己的问题,设置.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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)