[转]Timer 使用的注意事项 (.NET 为例)

timer ,顾名思义:定时器;在程序中,需要定期去做某件事时,timer通常都是我们的首选,因为timer确实简单易用

通常,我们使用timer时,只做两件事:

  1. 给 timer 指定一个 interval值, 该值是以 毫秒为单位的(但是准确度没有那么高 )。

      我们这里,比如赋值 2000 (2秒)

  2.  在 timer 的 tick 事件里,加入要做的事

private void timer1_Tick( object sender, EventArgs e )
{
    // dosomething();
}
一般情况下, 上面的就OK啦 
就上面的例子, 假定 interval 设定为 2000(2秒)
而 dosomething() 耗时为 3 秒或更多,那会发生什么事情呢?

结果是 dosomething 执行结束后,并没有等待2秒,而是直接又执行了一次,重复下去,违背了我们的初衷。

下面的例子,可以在很大程度上解决上面的问题:

private void timer1_Tick( object sender, EventArgs e )
{
    timer1.Stop(); //先停止timer

    try
    {
        //dosomething();
    }
    finally
    {
        timer1.Start();  //要做事情结束后,再开始计时
    }
}
    
posted @ 2010-02-22 19:41  Minja  阅读(266)  评论(0编辑  收藏  举报