最近一个项目需要使用一个定时器,周期大概10ms左右,开始尝试了windos api 的settimer ,发现 这个定时器精度很低,最小周期都要在15ms 以上,满满不满足需求,后查询资料,找到一个多媒体计时器timeSetEvent,试了一下,精度提高了很多。可以满足项目需求,下面记录使用方法,至于函数原型说明,可以百度看下说明。
#include "stdafx.h" #include#include #pragma comment(lib,"Winmm.lib") int _tmain(int argc, _TCHAR* argv[]) { //CallBackTimer 为自定义的回调函数 void CallBackTimer(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) int gtime_ID = timeSetEvent(8, 1, (LPTIMECALLBACK)CallBackTimer, 0, TIME_PERIODIC); if (gtime_ID == NULL) { printf("time ID is not created\n"); } int temp; std::cin >> temp; return 0; }
认真拜读,好为学徒!