Совершенно новичок в C # и таймерах, хотя мне удалось сделать некоторые действительно забавные вещи в C #, однако я не разбираюсь в Timers.
Form1.cs:
private int counter;
static System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();
public void goTimer()
{
// Set Counter
counter = 60;
// If timer is already enabled, stop it.
if (timer1.Enabled)
{
timer1.Dispose();
//timer1.Stop() <- also tried
}
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Interval = 1000; // 1 second
timer1.Start(); // Timer exists
txtCountdown.Text = counter.ToString();
}
private void timer1_Tick(object sender, EventArgs e)
{
counter--;
if(counter == 0)
{
timer1.Stop();
}
txtCountdown.Text = counter.ToString();
}
Итак, получается, что все работает так, как задумано, до тех пор, пока вы не начнете звонить goTimer();
, например, с помощью нажатия кнопки, тогда он ускорит (int) counter
столько, сколькокак только вы нажали ее ... И через некоторое время память будет израсходована.
В этом случае пользователи смогут вызывать функцию таймера, так как она удалит некоторые объекты, очистит некоторые данныеи обновить сеанс, но также, когда таймер достигнет 0.
Используя Winforms, я не добавил таймер в visual studio (он упоминается здесь только в Form1.cs).
Как мне завершить все таймеры, а затем перезапустить с (int) counter
?