Winapi GetTickCount()是否包括挂起或休眠所花费的时间?

Winapi GetTickCount()是否包括挂起或休眠所花费的时间?,winapi,Winapi,澄清一下,我指的是系统挂起/休眠时所花费的时间,而不是调用线程(GetTickCount()返回系统启动后的毫秒数)。据我所知,GetTickCount与线程无关,并统计系统启动后的时间。但最好避免使用49.7天 顺便说一句,要得到你想要的,你需要这个函数。它记录创建和退出时间以及线程在用户或内核空间花费的时间。所以你有一个很好的方法来计算花费的时间 好的,我错过了问题的“系统”部分。但这很简单。休眠时,GetTickCount继续计数。因为当计算机大部分时间处于休眠状态时,人们都遭受了49.7

澄清一下,我指的是系统挂起/休眠时所花费的时间,而不是调用线程(GetTickCount()返回系统启动后的毫秒数)。

据我所知,GetTickCount与线程无关,并统计系统启动后的时间。但最好避免使用49.7天

顺便说一句,要得到你想要的,你需要这个函数。它记录创建和退出时间以及线程在用户或内核空间花费的时间。所以你有一个很好的方法来计算花费的时间

好的,我错过了问题的“系统”部分。但这很简单。休眠时,GetTickCount继续计数。因为当计算机大部分时间处于休眠状态时,人们都遭受了49.7天的错误。有关详细信息,请参见此处。

GetTickCount()
以毫秒为单位显示计算机启动后的时间。它与调用它的进程无关。

简短回答:是

更详细的回答:阅读文档:这是系统启动后经过的时间,即使是MS也不会建议在计算机休眠时时间保持静止…

不,
GetTickCount()
不包括系统在休眠期间花费的时间。 一个简单的测试就证明了这一点

在Python中:

import win32api
win32api.GetTickCount()
--冬眠--


您将看到结果…

是的,GetTickCount确实包含挂起/休眠时间

在下面的python脚本中,我调用sleepapi等待40秒,让我有机会将计算机置于hibernate模式,然后打印之前和之后的时间,以及之后的刻度计数差

import win32api import time print time.strftime("%H:%M:%S", time.localtime()) before = win32api.GetTickCount() print "sleep" win32api.Sleep(40000) print time.strftime("%H:%M:%S", time.localtime()) print str(win32api.GetTickCount()-before) 导入win32api 导入时间 打印时间.strftime(“%H:%M:%S”,time.localtime()) before=win32api.GetTickCount() 打印“睡眠” win32api.Sleep(40000) 打印时间.strftime(“%H:%M:%S”,time.localtime()) 打印str(win32api.GetTickCount()-before) 输出:

17:44:08 sleep 17:51:30 442297 17:44:08 睡觉 17:51:30 442297
如果GetTickCount没有包括休眠期间的时间,那么它将比我休眠的时间少得多,但它与实际经过的时间相匹配(7分22秒等于442秒,即442000毫秒的“滴答声”)。

对于在Windows CE平台下查找答案的任何人,请参阅文档:

你可以阅读:

对于版本配置,此函数返回 设备启动后的毫秒,不包括 系统已暂停。GetTickCount在引导时从0开始,然后计数 从那里上去


我认为最初的问题是指系统是挂起还是休眠,而不是特定的thread.Point。完全错过了那个。愚蠢的问题,当你尝试这个时会发生什么?我会的,因为我对答案也很好奇,但我现在手头上没有一台可挂起的Windows计算机。我想最好的办法就是测试它。完全错误而且没有帮助——这一点python无法让您在GetTickCount调用之间休眠 17:44:08 sleep 17:51:30 442297