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