Timer 使用的注意事项

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

转自:http://blog.csdn.net/alexzhang00/archive/2008/11/14/3298441.aspx

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();  //要做事情结束后,再开始计时
    }
}
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值