[转]Timer 使用的注意事项 (.NET 为例)
timer ,顾名思义:定时器;在程序中,需要定期去做某件事时,timer通常都是我们的首选,因为timer确实简单易用 。
通常,我们使用timer时,只做两件事:
- 给 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(); //要做事情结束后,再开始计时 } }