Как 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д