2017-01-16 2 views
0

я активировал свой таймер окна и попытался остановить, но, кажется, не работает, смотрите мой код:Как работают таймеры .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 раз? Цикл «For» с n раз не работает. –

+0

Несомненно. Вам нужна переменная класса, такая как 'int timerRanHowManyTimes = 0', и в каждом событии таймера переменная увеличивается. Перезагрузите таймер только в том случае, если значение этой переменной меньше требуемого количества раз. –

0

В строке MessageBox.Show("Hello"); Выполнение остановится там ждет пользователю нажать «OK» кнопку, так что линия timer1.Stop(); не будет достигнута до тех пор, пока пользователь не взаимодействует с блоком сообщения и таймер будет продолжать работать таким образом ,

+0

Я думаю, что я узнаю что-то новое, большое вам спасибо –

Смежные вопросы