Как Timer остановить? - C#
Формулировка задачи:
Программно создаю несколько CheckBox`ов и каждый чекбокс создает новый экземпляр Timer и запускает его. Но как при следующем клике на чекБокс таймеры остановить?
Прошу помощи. За ране Спасибо
private List<Control> CheckBox = new List<Control>(); private void Components() { int x = 20, y = 30; for (int i = 0; i < OptionsValue.Count; i++) { CheckBox.Add(new CheckBox()); CheckBox[i].Location = new Point(x, y + 6); y += 30; CheckBox[i].Name = i.ToString(); CheckBox[i].Text = OptionsValue[i].Remove(0, 0).Remove(OptionsValue[i].IndexOf(":"), (OptionsValue[i].Length - OptionsValue[i].IndexOf(":"))); CheckBox[i].AutoSize = true; CheckBox[i].Size = new Size(70, 30); CheckBox[i].Click += ValueCheckBox_Click; Controls.Add(CheckBox[i]); } } System.Threading.Timer tim; void ValueCheckBox_Click(object sender, EventArgs e) { CheckBox b = (CheckBox)sender; int bbb = int.Parse(b.Name); if (b.Checked) { tim = new System.Threading.Timer(delegate { OnCheckBoxClick(bbb); }); tim.Change(1000, 2000); } else { tim.Dispose(); // тут если с одним чекБоксом работат, то работает. Если с нескольким то нет. } } private void OnCheckBoxClick(int bbb) { //что то делам. }
Решение задачи: «Как Timer остановить?»
textual
Листинг программы
MyClass my; for(int i = 0; i < 100; i++) my = new MyClass();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д