如何在C#中暂停计时器?

4

我的代码中有一个10秒间隔的计时器。

当时间到期时,我会进行一些检查。这可能需要超过10秒钟来完成检查和一些更新工作。

然而,如果我没有停止计时器,似乎每10秒钟就会执行一次检查。如果我调用stop(),则计时器无法再次启动。

即:

    protected void timer_elapsed(object sender, EventArgs args) 
    {
        __timer.Stop();
        //Some checking here more than 10s
        __timer.Start();
    }

在检查完成之前,我只想再多花10秒钟检查一遍。

有人可以帮忙吗?


也许尝试在不需要运行时将计时器启用属性设置为false,然后在准备好再次运行时将其设置回启用状态。 - Robb
1个回答

5
假设这是类似于winforms或WPF的东西,那么这应该可以工作。你确定你没有收到异常或其他什么吗?
如果这是Web应用程序,那就不好说了;-p 也许你应该澄清一下这是System.Threading.Timer、System.Timers.Timer还是System.Windows.Forms.Timer,或者其他什么东西。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接