Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Multimedia timer


Автор: deniska 18.7.2007, 13:07
Ситуация: запускаю мильтимедийный таймер. частота 100мс. при определенных условиях вызываемая функция не успевает отрабатывать за это время, в это время видимо набирается какая то внутрення очередь таймера и как только появляются условия быстрой отработки функции таймера, вызовы этой функции сыпятся непрерывно в течение некоторого времени (видимо пока очередь не очистится). Возможно ли сделать так, чтобы очередь таймера не собиралась? (можно конечно с помощью GetTickCount() смотреть сколько времени прошло с момента последнего запуска функции таймера и если оно меньше периода, то просто не выполнять действия в функции. но мне этот метод кажется немного кривоватым) 

Автор: __Sergey__ 18.7.2007, 16:10
копай в сторону очереди таймеров: CreateTimerQueue и т.п.

Автор: Earnest 20.7.2007, 18:03
Если частота 100 мс тебя устраивает, замени на обычный таймер (который SetTimer) или WaitableTimer, если дело происходит не в окне, а в потоке. По окончании функции просто переустанавливай таймер.
Можно еще сбрасывать таймер в момент запуска функции и устанавливать по окончании.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)