多媒体处理要用到高精度的定时器,在windows下常见的做法是:
先设置定时器精度为1毫秒:
timeBeginPeriod(1);
这步很关键,否则定时器的精度很低,大概只有15.6毫秒,基本不能用。
但最近发现在最新版的windows10下出问题了,设置精度为1毫秒,程序也没有出错,但实际的精度降低到15.6毫秒,实际上精度设置完全不起作用了。实际上2020年4月份以后微软发布的系统都有此问题。
原因:原来是微软故意这么干的,他觉得设置精度到毫秒级别,太耗费资源了,如果是移动设备,频繁唤醒切换线程,电池消耗得很快。于是微软宁肯抛弃强兼容性传统,也坚决让这函数失效。