• Авторизация


Таймер 09-01-2007 17:14 к комментариям - к полной версии - понравилось!


C++

Как в Visual C++ сделать точный таймер, для того чтобы выполнять какое-то действие раз в секунду, только так, чтоб никаких задержек не был и всё происходило действительно раз в секунду? Можно для этого использовать информацию о изменении системного времени или ещё как?
вверх^ к полной версии понравилось! в evernote
Комментарии (10):
FUK_U_BICH 09-01-2007-17:19 удалить
http://www.medievalage.ru/?242561934773 *Свет* - клан , клан ЛИ.Ру. Вступай в ряды света !!! ------------------------------ а для общения и дружбы наше сообщество , открыто для всех !!! ============================== ..........
ToSHiC 09-01-2007-17:20 удалить
надо использовать системный таймер
Charly(Black) 09-01-2007-17:31 удалить
Самое лучшее что я нашел - это timeSetEvent()... tm=timeSetEvent(TimeToWait,0,(LPTIMECALLBACK)hst->m_hE,NULL,TIME_CALLBACK_EVENT_PULSE|TIME_ONESHOT); ASSERT(tm!=NULL); DWORD res=WaitForSingleObject(hst->m_hE, 2*hst->m_Interval); Все остальные подходы заедают слишком много времени, или недостаточно точны... Для более точного определения, можно уточнять интервал с помощью системного таймера, как это рекомендуют в предыдущем сообщении... Используя эту технику, мне удается при перерисовке попасть точно в вертикальный бланк дисплея...
ToSHiC 09-01-2007-17:38 удалить
в виндовсе есть ещё мультимедиа таймер (мб в ядре, мб в OpenGL, вот точно не помню, но про него читал в книжке про OpenGL), точность порядка 2 мс. у обычного таймера (что приведён выше) точность порядка 50 мс. (цифры привожу на память, могу ошибаться) LI 5.09.15
ToSHiC, вот вот. а как его использовать???
как использовать системный таймер???
ToSHiC 09-01-2007-18:52 удалить
вот нашёл, только код под делфи, но там всё понятно http://program.rin.ru/razdel/html/1181.html LI 5.09.15
Charly(Black) 10-01-2007-00:02 удалить
Исходное сообщение Helmsman_of_ship_Da как использовать системный таймер???
Очень просто: QueryPerformanceCounter(&pc); QueryPerformanceFrequency(&pf); return (DWORD)((1000*pc.QuadPart)/pf.QuadPart);
AndrejT 10-01-2007-08:40 удалить
а если точность ДЕЙСТВИТЕЛЬНО нужна то смотреть в сторону ОСРВ


Комментарии (10): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Таймер | community_coding - Сообщество программистов | Лента друзей community_coding / Полная версия Добавить в друзья Страницы: раньше»