以前做上层程序的时候,需要计时的时候就GetTickCount()获取当前ms来做个减法,如果有Timer需求,那肯定直接SetTimer,OnTimer,KillTimer三件套。最近遇到了一个要求发送频率50Hz,直接SetTimer将间隔设置为20,结果发现数据间隔差的离谱。查了一下,GetTickCount和Timer都是基于Windows消息循环,最小单元为55ms左右。如果想实现更高的精确度:
精确获取时间
QueryPerformanceFrequency() - 基本介绍
类型:Win32API
原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
作用:返回硬件支持的高精度计数器的频率。
返回值:非零,硬件支持高精度计数器;零,硬件不支持,读取失败。
QueryPerformanceFrequency() - 技术特点