2010-06-15 50 views

回答

8

Sleep()與掛鐘時間無關。它基於用於線程調度的相同定時器。

由於系統時鐘的頻率以及在超時時間之後實際上計劃運行的時間,您幾乎不會睡10秒。

+0

如果他們是獨立的,那麼如果在午夜(00:00:00)我做睡眠(10000),五秒鐘後(00:00:05),我將系統時鐘重置爲午夜(00:00) :00),那麼這是否意味着在睡眠(10000)醒來之前將有15秒的掛鐘時間過去?該機制與Windows時間服務實現的漂移有什麼不同? – 2010-06-15 15:57:23

+0

睡眠不使用WTS。它基於系統時鐘節拍和節拍頻率。系統時鐘的這種用法不應與牆上的時鐘混淆。 – user7116 2010-06-15 16:05:28

3

這是沒有記錄在任何我知道的,但是,你可以放心地假設如此。如果不這樣做,這將是相當具有破壞性的,每年兩次白天過渡發生。這文件中等效內核函數,KeDelayExecutionThread的時間間隔參數:

指定絕對或相對時間,以100納秒,爲此等待將要發生的單位。負值表示相對時間。絕對到期時間跟蹤系統時間的任何變化;相對過期時間不受系統時間變化的影響。