【问题标题】:VB6 killing timersVB6 杀死计时器
【发布时间】:2017-01-03 15:16:10
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: timer vb6


    【解决方案1】:

    您已经回答了自己的问题,将.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
    

    【讨论】:

    • 加一。这是一个link to the Microsoft VB6 Timer documentation 很好的衡量标准。它说“只要Timer 控件的Enabled 属性设置为True 并且Interval 属性大于0,Timer 事件就会等待Interval 属性中指定的时间段。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多