Я пытаюсь создать систему, в которой срабатывает триггер, чтобы двери открывались в течение 5 секунд, а затем снова закрывались. Я использую Threading.Timer для этого, используя:Сброс таймингового таймера, если он называется второй раз
OpenDoor();
System.Threading.TimerCallback cb = new System.Threading.TimerCallback(OnTimedEvent);
_timer = new System.Threading.Timer(cb, null, 5000, 5000);
...
void OnTimedEvent(object obj)
{
_timer.Dispose();
log.DebugFormat("All doors are closed because of timer");
CloseDoors();
}
Когда я открываю определенную дверь, таймер начинает. Через 5 секунд все снова закрывается.
Но когда я открываю определенную дверь, подождите 2 секунды, затем откройте другую дверь, все закрывается через 3 секунды. Как я могу «сбросить» таймер?