template<class Caller>
class uniset::CallbackTimer< Caller >
Таймер
- Автор
- Pavel Vainerman
- Создает поток, в котором происходит отсчет тактов (10ms). Позволяет заказывать до CallbackTimer::MAXCallbackTimer таймеров. При срабатывании будет вызвана указанная функция с указанием Id таймера, который сработал. Функция обратного вызова должна удовлетворять шаблону CallbackTimer::Action. Пример создания таймера:
class MyClass
{
public:
void Time(size_t id){ cout << "Timer id: "<< id << endl;}
};
MyClass* rec = new MyClass();
...
CallbackTimer<MyClass> *timer1 = new CallbackTimer<MyClass>(rec);
timer1->add(1, &MyClass::Time, 1000);
timer1->add(5, &MyClass::Time, 1200);
timer1->run();
- Заметки
- Каждый экземпляр класса CallbackTimer создает поток, поэтому желательно не создавать больше одного экземпляра, для одного процесса (чтобы не порождать много потоков).