在窗口中找出精确度为1ms的最快方法是什么?

Sky*_*kyN 2 c++ windows winapi

对绝对时间感兴趣,而不是衡量持续时间的方法.

Win32 API

C++

Pau*_*sik 5

你需要特殊的硬件.即使Windows API报告毫秒,但根据此讨论,它并不完全准确:

大多数英特尔奔腾基础PC(我不确定其他人)在主板上有一个定时器芯片,有1.19318166667MHz计数器.

计数器从N(默认为N = 65535)向下计数到1.1,速率为1.19318166667MHz.当计数器从1翻转到N(零从不发生)时,会产生系统定时器中断.请注意,此中断会更新系统时间.

如果N = 65535,则生成系统定时器中断(1.19318166667/65535*1000000)=每秒18.2次.这相当于每54.9毫秒.

这种粒度是当今大多数PC中固有的.


Han*_*ant 5

你需要硬件来达到这种绝对精度,比如GPS无线电时钟.您还需要编写设备驱动程序级软件,用户模式程序几乎无法快速响应时间到毫秒级.通常,Windows不是适合此类型的操作系统.