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