![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
IGanja |
|
||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
Таймер срабатывает каждую секунду. Выполняется итерация цикла и оставшееся время от секунды жду освобождения таймера. Все хорошо пока не случается превышения секунды в работе кода итерации. По моим представлениям после превышения, например при работе 2,8 секунды на строчке WaitForSingleObject(hTimer, INFINITE); программа должна дожидаться начала следующий секунды, ведь таймер занят. Вреальности же проскакивает коротенькая итерация на 0,2 секунды и далее таймер входит в свою требуемую частоту. Может кто ни будь знает почему так происходит? У Рихтера на этот счет ничего нет.
Добавлено через 10 минут и 1 секунду вот полностью рабочая прога
|
||||
|
|||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Почему он занят? Потому что с автосбросом? Но ведь автосброс сработает только в момент вызова WaitForSingleObject. Так сделано специально, чтобы не потерялось пропущенное срабатывание таймера. Оно и не теряется. Поскольку Вы ожидаете только срабатывание таймера, то можно его просто сэмулировать через GetTickCount и Sleep. А можно в существующей схеме просто проверять, что пропущен тик таймера, и уже дожидаться следующего тика. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
IGanja |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
feodorv, то есть, таймер через секунду освобождается и снова перейдет в занятое состояние только после вызова WaitForSingleObject? Тогда все понятно. Спасибо.
Я думал что он каждую секунду освобождается на такт и снова переходит в занятое состояние и если я не находился в ожидании, то пропускал этот сигнал. Это сообщение отредактировал(а) IGanja - 9.6.2012, 13:55 |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
![]() -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |