2013-02-15 5 views
0

Как реализовать функцию таймера C++, которая будет действовать следующим образом: void glutTimerFunc(unsigned int msecs,void (*func)(int value), value);, но это был просто материал WinAPI (или STL)? Однако мне нужно, чтобы он не был занят. Он должен вызвать функцию после X числа миллисекунд. Спасибо за любую/всю помощь!реализовать таймер Windows

Я смотрел struct timeval tv;, но я немного смущен о том, как его реализовать. Это должна быть замена на glutTimerFunc(). Благодаря

+0

Это o.k. если он вызывает функцию в другом потоке? Если да, взгляните на [очереди таймеров] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms687003 (v = vs.85) .aspx). –

+0

Я не уверен, но ему нужно обновить переменные. Я все еще узнаю о потоках, но я предполагаю, что это не сработает. – user2068060

ответ

2

Использование Waitable Таймеры - SetWaitableTimer после вызова CreateWaitableTimer

Когда приходит положенное время, таймер сигнал и поток, установить таймер вызывает дополнительную процедуру завершения.

Существует пример того, что я считаю вашим желаемым шаблоном использования here.

+0

Я думаю, что это оживленное ожидание, так же, как если бы я запускал функцию delay(). - точнее. – user2068060

+1

Нет, это не занятое ожидание. «SleepEx» помещает поток в режим сна; ядро разбудит его только тогда, когда появится APC. См. Http://msdn.microsoft.com/en-us/library/windows/desktop/ms686307%28v=vs.85%29.aspx. –

Смежные вопросы