我的C#应用程序正在使用一个计时器来确定是否在及时的事件中发生了预期的事件。这就是我目前正在尝试这样做的方式:
// At some point in the application where the triggering event has just occured.
// Now, the expected event should happen within the next second.
timeout = false;
timer1.Interval = 1000; // Set timeout for 1 second.
timer1.Start();
timer1_Tick(object sender, EventArgs e)
{
timeout = true;
}
// At some point in the application where the expected event has occured.
timer1.Stop();
// At a later point in the application where the timeout is
// checked, before procedding.
if ( timeout )
{
// Do something.
}
现在,我想知道的是,当调用Start()
或Stop()
成员方法时,是否会导致计时器计数重置?我使用的是Microsoft Visual C#2008 Express Edition。感谢。
答案 0 :(得分:3)
当您致电Stop()时,它会从链接页面有效地将计时器重置为0:
禁用后调用“开始” 定时器通过调用Stop将导致 Timer重启中断 间隔。如果您的计时器设置为 间隔5000毫秒,和你一样 呼叫停止在3000毫秒左右, 调用Start将导致Timer 等待5000毫秒之前 举起Tick事件。
答案 1 :(得分:0)
来自MSDN:
通过调用Stop禁用定时器后调用Start将导致Timer重新启动中断的间隔。如果您的Timer设置为5000毫秒间隔,并且您在大约3000毫秒内调用Stop,则调用Start将导致Timer在提升Tick事件之前等待5000毫秒。