最近做一个项目,需要用到1ms的定时器中断,但用SetTimer总是觉得不准确,后来用程序一测试,还真是不准,定时时间设为1ms,但实际大约没10ms触发一次中断,至于如何测试的后面有代码。网上很多人也说了SetTimer定时不准确的问题,后来用多媒体定时器,就比较准了。
多媒体定时器使用方法:
添加头文件
#include "mmsystem.h" //head file
#pragma comment(lib,"winmm") //lib file
下面是函数
void CALLBACK SendFun(UINT wTimerID, UINT msg, DWORD dwUser, DWORD dwl, DWORD dw2);
MMRESULT g_wTimerID = 0; int timeRes = 1 ;bool CIExample0042aDlg::CreateTimer(){ TIMECAPS tc; UINT wTimerRes; //设置多媒体定时器 if(timeGetDevCaps(&tc,sizeof(TIMECAPS))!=TIMERR_NOERROR)//向机器申请一个多媒体定时器 return false;//获