public void ОстановитьТаймер(string имя) { СостояниеТаймера состояние = НайтиТаймер(имя); if (состояние == null) { Вывести("### Нет таймера с таким именем."); return; } таймеры.Remove(состояние); состояние.Таймер.Dispose(); состояние.Таймер = null; Вывести("### Остановлен таймер с именем \"" + имя + "\"."); }
public void ЗапуститьТаймер(string имя, int задержка, int интервал, int числоСрабатываний, string команда) { if (имя != null && НайтиТаймер(имя) != null) { Вывести("### Таймер с таким именем уже существует."); return; } if (задержка < 0 || интервал < 0) return; if (числоСрабатываний == 0 || команда == null) return; СостояниеТаймера состояние = new СостояниеТаймера(); таймеры.Add(состояние); состояние.Имя = имя; состояние.Счетчик = числоСрабатываний; состояние.Команда = команда; состояние.Таймер = new Timer(new TimerCallback(ОбработатьТик), состояние, задержка, интервал); }
void ОбработатьТик(object состояниеТаймера) { СостояниеТаймера состояние = (СостояниеТаймера)состояниеТаймера; if (одитель != null && состояние.Команда != null) { одитель.ОбработатьВведенныйТекст(состояние.Команда); } if (состояние.Счетчик > 0) { состояние.Счетчик--; } if (состояние.Счетчик == 0) { таймеры.Remove(состояние); состояние.Таймер.Dispose(); состояние.Таймер = null; return; } }
public void ЗапуститьТаймер(string имя, int задержка, int интервал, int числоСрабатываний, string команда) { if (имя != null && НайтиТаймер(имя) != null) { Вывести("### Таймер с таким именем уже существует."); return; } if (задержка < 0 || интервал < 0) { return; } if (числоСрабатываний == 0 || команда == null) { return; } СостояниеТаймера состояние = new СостояниеТаймера(); таймеры.Add(состояние); состояние.Имя = имя; состояние.Счетчик = числоСрабатываний; состояние.Команда = команда; состояние.Таймер = new Timer(new TimerCallback(ОбработатьТик), состояние, задержка, интервал); }