- Заметки
- '_LT' - это "local timers". Класс реализующий механизм работы с локальными таймерами. Обеспечивает более надёжную работу т.к. позволяет обходится без удалённого заказа таймеров у TimеService-а. Но следует помнить, что при этом объект использующий такие таймеры становится более ресурсоёмким, т.к. во время работы поток обработки сообщений не "спит", как у обычного UniSetObject-а, а тратит время на проверку таймеров (правда при условии, что в списке есть хотя бы один заказ)
- Основной принцип
- Проверяет список таймеров и при срабатывании формирует стандартное уведомление uniset::TimerMessage, которое помещается в очередь указанному объекту. При проверке таймеров, определяется минимальное время оставшееся до очередного срабатывания. Если в списке не остаётся ни одного таймера - возвращает UniSetTimers::WaitUpTime.
Примерный код использования выглядит так:
class MyClass:
{
...
int sleepTime;
UniSetObject_LT lt;
void callback();
}
void callback()
{
try
{
processingMessage(&msg);
}
{
cout << myname << "(callback): " << ex << endl;
}
}
void askTimers()
{
termWaiting();
}
Definition Exceptions.h:46
timeout_t sleepTime
Definition LT_Object.h:197
Definition UniSetObject.h:80
static const timeout_t WaitUpTime
Definition PassiveTimer.h:69
- Предупреждения
- Точность работы определяется периодичностью вызова обработчика.
- См. также
- TimerService