定时器永不停止

Jac*_*ack 1 c# timer winforms

Stop()Tick回调事件函数调用,但它不会停止,该函数反复运行.为什么以及如何解决此问题?

此函数仅调用一次:

System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();
void foo() {
    timer1.Interval = 1000;
    timer1.Tick += new EventHandler(timerTick);
    timer1.Start();
}
Run Code Online (Sandbox Code Playgroud)

和回调函数:

 void timerTick(object o, EventArgs ea)
 {
     if (browser.ReadyState == WebBrowserReadyState.Complete)
     {
         MessageBox.Show("stop it!");
         timer1.Stop();
     }
 }
Run Code Online (Sandbox Code Playgroud)

这将显示无限的stop it消息框,而它必须显示一次.

Bra*_*NET 6

你需要撤销你的陈述:

if (browser.ReadyState == WebBrowserReadyState.Complete)
{
   timer1.Stop();
   MessageBox.Show("stop it!");
}
Run Code Online (Sandbox Code Playgroud)

目前的情况; 它将继续滴答作响,直到你关闭一个盒子(因为MessageBox.Show块),这可能是很多滴答.