Не срабатывает Timer Callback, и не выполняются события - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Решил написать схему переключения светофора, основанную на событиях. Заодно опробовал System.Threading.Timer. Получился вот такой код. Проблема заключается в том, что не включаются события, определенные в TimerGreen, TimerRed, TimerYelllow.
    class LightEvent
    {
        public delegate void LightEventHandler();
        public event LightEventHandler Green;
        public event LightEventHandler Yellow;
        public event LightEventHandler Red;
        System.Threading.Timer timer;
        TimerCallback tcb;
        private int interval;
        private int green;
        private int yellow;
        private int red;
        public LightEvent(int _green, int _yellow, int _red)
        {
            green = _green * 1000;
            yellow = _yellow * 1000;
            red = _red * 1000;
        }
        public void DoWorkLight()
        {
            interval = green;
            tcb = TimerGreen;
            for (int i = 0; i < 10000; i++)
            {
                timer = new System.Threading.Timer(tcb, false, interval, 0);
                timer.Dispose();
            }
        }
        public void TimerGreen(object source)
        {
            if (Yellow != null)
                Yellow();
            tcb = TimerYellow;
            interval = yellow;
        }
        public void TimerYellow(object source)
        {
            if (Red != null)
                Red();
            tcb = TimerRed;
            interval = red;
        }
        public void TimerRed(object source)
        {
            if (Green != null)
                Green();
            tcb = TimerGreen;
            interval = green;
        }
    }
Объясните, пожалуйста, в чем тут дело.

Решение задачи: «Не срабатывает Timer Callback, и не выполняются события»

textual
Листинг программы
            _tcb = TimerYellow;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5