Как остановить таймер System.Threading.Timer - C#
Формулировка задачи:
Здравствуйте!
Пытаюсь написать простую программу "Секундомер" с использованием класса System.Threading.Timer. (проект во вложении)
Не могу понять, как правильно остановить таймер. Использую свойство Change:
но при нажатии на данную кнопку первый раз секундомер останавливается. А уже при нажатии второй и следующие разы к значению отображаемого в текстбоксе времени прибавляется 100 мс. Не могу понять вообще, почему это происходит? Ведь данный метод даже в текстбоксе ничего не должен менять.
Если использовать
Листинг программы
- private void Pause_Click(object sender, EventArgs e)
- {
- t1.Change(0, 0);
- }
System.Timers.Timer
, то там есть метод Старт, Стоп и все понятно и работает.А как в данном случае правильно останавливать этот таймер?
весь код проекта:
Листинг программы
- namespace MyExp
- {
- public partial class Form1 : Form
- {
- System.Threading.Timer t1;
- DateTime dt;
- TimeSpan ts;
- public Form1()
- {
- InitializeComponent();
- dt=new DateTime(365, 12, 31, 0,0,0,0);
- ts = new TimeSpan(0, 0, 0, 0, 0);
- }
- private void Start_Click(object sender, EventArgs e)
- {
- t1 = new System.Threading.Timer(new TimerCallback(metod2_SekundomerStart), null, 0, 10);
- }
- private void Pause_Click(object sender, EventArgs e)
- {
- t1.Change(0, 0);
- }
- private void reset_Click(object sender, EventArgs e)
- {
- ts=new TimeSpan(0, 0, 0, 0, 0);
- textBox2.Text = ts.ToString(@"hh\:mm\:ss\:ff");
- }
- private void metod2_SekundomerStart(object state)
- {
- Action action = delegate
- {
- ts = ts.Add(new TimeSpan(0, 0, 0, 0, 10));
- textBox2.Text = ts.ToString(@"hh\:mm\:ss\:ff");
- };
- Invoke(action);
- }
- private void Form1_FormClosing(object sender, FormClosingEventArgs e)
- {
- Application.Exit();
- t1.Change(0, 0);
- t1.Dispose();
- }
- }
- class MyClass
- {
- }
- }
Решение задачи: «Как остановить таймер System.Threading.Timer»
textual
Листинг программы
- t1.Change(System.Threading.Timeout.Infinite, 0);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д