Windows Timer是否与Sleep()一样精确?

Sleep()是非常准确的,所以例如,如果我想睡10个小时:

Sleep(36000000); // sleep for 10 hours

我的线程将等待10个小时(加上Windows需要唤醒我的线程的时间,这可以忽略不计)。

但是,由于Sleep()会阻塞我的UI线程,所以我使用Windows定时器。 那么Windows计时器是否与Sleep()一样精确? 也就是说,它会等待10个小时(加上我的窗口过程接收WM_TIMER消息所需的时间)吗?


是的, Sleep()SetTimer()下面的基本管道是相同的。 通过调用timeBeginPeriod()可以看到的东西,它会影响两者的准确性。 它是时钟滴答中断处理程序,它可以计算睡眠和定时器,并在线程准备好再次运行时计算线程。 当系统时钟被时间服务器重新校准时,他们的睡眠/等待时间被调整。

链接地址: http://www.djcxy.com/p/62479.html

上一篇: Is a Windows Timer as accurate as Sleep()?

下一篇: What would cause WaitForSingleObject with finite timeout not to return?