【发布时间】:2015-10-31 13:59:38
【问题描述】:
Sleep() 非常准确,比如我想睡10个小时:
Sleep(36000000); // sleep for 10 hours
我的线程将等待正好 10 个小时(加上 Windows 需要唤醒我的线程的时间,可以忽略不计)。
但是,由于Sleep() 会阻塞我的 UI 线程,所以我改用 Windows 计时器。那么 Windows 计时器是否与Sleep() 一样准确?也就是说,它会等待 10 个小时(加上我的窗口过程接收WM_TIMER 消息所需的时间)吗?
【问题讨论】:
-
我认为
sleep()也会使用操作系统计时器来计算10 hours。 -
使用计划任务
-
@Haris “仅 计算 10 小时”是什么意思,如果计算超过 10 小时,它会使用其他东西吗?
-
@James 让我重新表述一下,“...也将仅使用操作系统计时器来计算
10 hours”。 -
Sleep 和 SetTimer 都不会考虑系统休眠的时间。另一方面,scheduled task 确实如此。