我目前正在使用GetThreadTimes
告诉我在应用程序的事件循环中花了多少时间。
我想知道这会如何受到冬眠的影响。是否报告了冬眠时间?或者也许是系统时间?所有版本的Windows上的行为是否相同?
注意我为Posix here提出了同样的问题。
答案 0 :(得分:0)
怎么可能?
当休眠时,计算机实际上关闭,没有计时器正在滴答作响且没有计数。
使用GetThreadTimes
看到的时序是在系统计时器 1 的每个滴答(即中断)时计算的。
我做了一个小C程序来测试它。
它记录每1000毫秒的时间,我运行它并休眠我的笔记本电脑(大约第二个9)
计数中没有显示间隙,正如预期的那样,每行约为1000毫秒。
因此,休眠时间不会计入系统时间或用户时间。
我不知道这与所有旧版本的Windows一致,特别是那些具有不同休眠意义的版本,但您可以期望在所有重要版本中保持一致。
1 HPET,LAPIC计时器或旧的PIT,无论可用的是什么