Как использовать ТАЙМЕРЫ в vc ++? Я хочу запускать различные функции или код через определенный промежуток времени (скажем, 10 мс) без использования Sleep () - PullRequest
0 голосов
/ 01 сентября 2009

Привет всем, я хочу выполнить код, похожий на процедуру обработки прерывания, после истечения таймера (скажем, распечатать привет через каждые 10 мс), и это дополнительное действие, поэтому оно должно использовать таймер. Так как мне реализовать таймеры в VC ++

Ответы [ 2 ]

2 голосов
/ 01 сентября 2009

Вы хотите использовать функцию CreateTimerQueueTimer () . Вот MSDN пример кода .

Если вам нужно что-то, работающее на старых платформах, вы застряли с SetTimer () , который доставляет сообщение WM_TIMER вашему WNDPROC. Это довольно ужасный API, поэтому я действительно рекомендую использовать функцию Timer Queue.

CreateTimerQueueTimer () создаст рабочий поток, который вычисляет, сколько времени прошло, а затем перезвонит вам, когда он появится. Это может привести к многопоточности, но в целом это намного приятнее, особенно если вы не хотите иметь окно.

0 голосов
/ 01 сентября 2009

Используйте SetTimer для установки таймера с заданным временем ожидания. Вы можете указать метод обратного вызова в SetTimer или обработать сообщение WM_TIMER. После этого используйте KillTimer, чтобы убить таймер. Смотрите пример в MSDN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...