澄清一下,我指的是系统暂停/休眠所花费的时间,而不是调用线程(GetTickCount()返回自系统启动以来的毫秒数。)
答案 0 :(得分:5)
据我所知,GetTickCount与线程无关,并计算自系统启动以来的时间。但最好使用GetTickCount64来避免49.7天的角色转换。
顺便说一下,为了获得你想要的东西,你需要GetThreadTimes功能。它记录了创建和退出时间以及线程在用户或内核空间中花费的时间。所以你有一个很好的方法来计算花费的时间。
好的,我错过了问题的“系统”部分。但这很简单。休眠时,GetTickCount继续计数。因为人们在大多数时间计算机处于休眠状态时都遇到了49.7天的错误。有关详细信息,请参阅此处link text。
答案 1 :(得分:5)
简短回答:是的。
更长的答案:阅读GetTickCount()文档:这是自系统启动以来的 已过去 时间,甚至MS也不会建议您的时间静止不动电脑正在休眠......
答案 2 :(得分:2)
是的,GetTickCount确实包含暂停/休眠时间。
在下面的python脚本中,我调用Sleep API等待40秒让我有机会将计算机置于休眠模式,然后打印前后的时间,以及之后的滴答计数差异。
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)
输出:
17:44:08 sleep 17:51:30 442297
如果GetTickCount在休眠期间没有包含时间,那么它将比我休眠的时间少得多,但它与实际经过的时间相匹配(7分22秒等于442秒,即442000毫秒“滴答”)。
答案 3 :(得分:2)
对于任何在Windows CE平台下寻找答案的人,来自docs:
http://msdn.microsoft.com/en-us/library/ms885645.aspx
你可以阅读:
对于Release配置,此函数返回的数量 自设备启动以来的毫秒数, 排除任何时间 系统已暂停 。 GetTickCount在启动时从0开始,然后计数 从那里开始。
答案 4 :(得分:0)
GetTickCount()
为您提供自计算机启动以来的毫秒时间。它与调用它的过程无关。
答案 5 :(得分:-3)
不,GetTickCount()
不包括系统在休眠期间花费的时间。
一个简单的测试证明了这一点。
:
import win32api
win32api.GetTickCount()
- 做休眠 -
win32api.GetTickCount()
你会看到结果......