【发布时间】:2013-04-09 15:22:18
【问题描述】:
如果Execute() 需要 3000 毫秒才能完成,但由于计时器间隔而每 1000 毫秒被调用一次,下面的代码会发生什么情况?
Timer _timer = new Timer();
private void setupTimer()
{
_timer.Tick += new EventHandler(pollingTimeElapsed);
_timer.Interval = 1000;
_timer.Enabled = true;
_timer.Start();
}
private void pollingTimeElapsed(object sender, EventArgs e)
{
Execute();
}
编辑:我正在使用 System.Windows.Forms.Timer,因为 System.Timers.Timer 没有 .Tick
【问题讨论】:
-
您使用的是 System.Timers.Timer 还是 System.Windows.Forms.Timer?
-
不要想知道会发生什么!只需停止计时器,Execute() 并再次启动计时器。
-
System.Windows.Timer 有一个 Tick 事件,System.Timers.Timer 有一个 Elapsed 事件。 System.Timers.Timer 有我的偏好。