timer,顾名思义:定时器
在程序中,需要定期去做某件事时,timer 通常都是我们的首选,因为 timer 确实简单易用。
通常,我们使用 timer 时,只做两件事:
1、给 timer 指定一个 interval 值, 该值是以“毫秒”为单位的。
我们这里,比如赋值 2000 (2秒)
2、在 timer 的 Tick 事件里,加入要做的事。
private void timer1_Tick( object sender, EventArgs e ) { // dosomething(); }
如果 dosomething() 耗时为 3 秒或更多,那会发生什么事情呢?
结果是 dosomething 执行结束后,并没有等待2秒,而是直接又执行了一次,重复下去,违背了我们的初衷。
下面的例子,可以在很大程度上解决上面的问题:
private void timer1_Tick( object sender, EventArgs e ) { timer1.Stop(); //先停止timer try { //dosomething(); } finally { timer1.Start(); //要做事情结束后,再开始计时 } }
以前我也从来没有注意过这个问题,这次看到这篇文章后,算是学习了,以后在编程的过程中应该注意这个问题了!