【问题标题】:How to find out if a Timer is running?如何确定 Timer 是否正在运行?
【发布时间】:2008-09-29 20:48:02
【问题描述】:

如果我有一个 System.Timers.Timer 的实例,它的间隔时间很长 - 比如 1 分钟,我如何才能知道它是否在不等待 Tick 的情况下启动?

【问题讨论】:

    标签: .net timer


    【解决方案1】:

    System.Timer.Timer.Enabled 应该可以工作,当您调用“Start”时,它会将 Enabled 设置为 TRUE,“Stop”将其设置为 FALSE。

    【讨论】:

    • 它会检查并适用于Timer 的所有正在运行的实例吗?也是在运行时或通过创建 Timer 类的新对象创建的,如果您能帮助我,那就太好了。
    • 此属性检查是否适用于Systems.Windows.Forms.Timer 或仅适用于System.Timer
    【解决方案2】:
    if (timer1.Enabled)
    {
       // Do Something
    }
    

    【讨论】:

      【解决方案3】:

      如果 Timer.Enabled 为 true,则您的计时器正在运行。

      调用 Timer.Start 将 Enabled 设置为 true。

      调用 Timer.Stop 将 Enabled 设置为 false。

      如果 Timer.AutoReset 为 true,则 Enabled 将在计时器第一次到期时自动设置为 false。

      【讨论】:

      • 关于 AutoReset 行为的注释是错误的。来自MSDN:如果 Timer 应该在每次间隔过去时引发 Elapsed 事件,则为 true;如果在第一次间隔过去之后,它应该只引发一次 Elapsed 事件,则为 false。默认为真。
      【解决方案4】:

      使用计时器的Enabled 属性。

      【讨论】:

        【解决方案5】:

        您应该检查计时器是否已启用

        【讨论】:

        • 因为你的回答是问题的形式。
        猜你喜欢
        • 2014-05-27
        • 2015-04-02
        • 2018-11-29
        • 2012-05-02
        • 1970-01-01
        • 1970-01-01
        • 2014-04-06
        • 2010-12-08
        • 1970-01-01
        相关资源
        最近更新 更多