WinAPI Sleep 函数难题:睡眠时间比预期更长
当使用参数 1 调用 WinAPI Sleep 函数时,用户可能会遇到线程延迟超过预定的持续时间。事实上,重复进行 100 次 Sleep(1) 调用,总睡眠时间为 1500ms,远大于规定的 100ms。
延长睡眠的原因:
此行为是 Windows 线程调度程序固有的。它以时间量程或线程可以执行的定义时间段进行操作。非零延迟本质上会四舍五入到最接近的完整量子。
合理的系统问题:
虽然观察到的行为是典型的,但排除它可能是有利的潜在的系统问题可能会加剧问题:
其他注意事项:
值得注意的是,其他正在运行的程序可以调整系统范围的计时器分辨率,可能会导致更小的量子大小。这可以解释据报告 Sleep(1) 延迟在预期 1 毫秒时间范围内的情况。 Windows 7 中的默认计时器分辨率应为 15.6 毫秒左右,而不是 1 毫秒。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3