2017-01-16 61 views
0

我启动我的Windows计时器,并试图阻止,但似乎并不奏效,请参阅我的代码:再次定时器如何在.net中工作?

private void button1_Click(object sender, EventArgs e) 
{ 
     timer1.Start(); 
} 

private void timer1_Tick(object sender, EventArgs e) 
{ 
     MessageBox.Show("Hello"); 
     timer1.Stop(); 
} 

它一遍又一遍地显示了消息,并没有停止。请给我一些想法,我非常感谢你的帮助。

+1

也许这个链接将帮助你解决你的问题。 http://stackoverflow.com/questions/4563704/c-sharp-how-do-you-stop-a-timer – Joseph

+0

这将帮助您了解http://stackoverflow.com/a/4563738/5001784 –

回答

2

您需要在之前停止显示消息框的计时器。否则,他们可能会堆积。

没有可以被配置为一个单次定时器System.Timers.Timer,但对于其他计时器一般的方法是:

当计时器事件触发时,停止计时,做你的事,然后开始如果需要再次定时。

+0

感谢您的你的答案。有没有办法重新执行定时器n次? “为”循环n次不起作用。 –

+0

当然。你需要像'int timerRanHowManyTimes = 0'这样的类变量,并且在每个定时器事件中,变量都会增加。只有在该变量的值小于所需次数时才重新启动计时器。 –

0

在行MessageBox.Show("Hello"); 执行将停在那里等待用户按下“确定”按钮,这样行timer1.Stop(); 不会直到达到用户与消息框交互,定时器将继续这样的工作方式。

+0

我想我学到了一些新东西,非常感谢 –

相关问题