Таймеры
Таймеры RTX являются скрытыми потоками-обработчиками, которые получают уведомление от RTSS о прохождении определенного интервала времени и вызывают процедуру-обработчик таймера, указанную при его создании.
При создании таймер ассоциируется с определенными часами в системе, по их отсчету срабатывает таймер. Таймер начинает отсчет после того, как был установлен. После того, как таймер сработал и процедура-обработчик возвратила управление, таймер может быть автоматически переустановлен. Таймеры, у которых интервал повторения установлен в 0, являются “одноразовыми” и выполняют процедуру-обработчик один раз. Таймеры, у которых установлен допустимый интервал повторения, будут выполнять процедуру-обработчик с заданным интервалом.
API
Следующие функции служат для доступа к RTX-службам таймеров:
RtCreateTimer –создает таймер, связанный с указанными часами. RtDeleteTimer – уничтожает ранее созданный таймер
RtCancelTimer – прекращает срабатывание указанного таймера
RtSetTimer – устанавливает абсолютное время срабатывания и интервал повтора для указанного таймера
RtSetTimerRelative - устанавливает относительное время срабатывания и интервал повтора для указанного таймера
Отношение к таймерам в Windows NT
Таймеры в RTX не являются объектами синхронизации. Это значит, что потоки не могут использовать Waifor.. функции с хэндлами RTX таймеров. Это отличает их от таймеров Windows NT, являющихся объектами, которые поток может ожидать или получать уведомление.
Программирование в Win32 и RTSS подсистемах
Если приложение должно информировать другие потоки о срабатывании таймера, оно должно использовать соответствующий объект уведомления (notification object) в процедуре-обработчике таймера.
| |