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(ОбработатьТик), состояние, задержка, интервал);
    }