GetTickCount 函数 (sysinfoapi.h)
检索自系统启动以来已用过的毫秒数,最长为 49.7 天。
语法
DWORD GetTickCount();
返回值
返回值是自系统启动以来经过的毫秒数。
言论
GetTickCount 函数的分辨率限制为系统计时器的分辨率,通常范围为 10 毫秒到 16 毫秒。 GetTickCount 函数的解析不受 GetSystemTimeAdjustment 函数所做的调整的影响。
已用时间存储为 DWORD 值。 因此,如果系统连续运行 49.7 天,时间将环绕到零。 若要避免此问题,请使用 GetTickCount64 函数。 否则,在比较时间时检查溢出条件。
如果需要更高分辨率的计时器,请使用 多媒体计时器 或 高分辨率计时器。
若要获取计算机启动后经过的时间,请检索注册表项中性能数据中的系统 Up Time 计数器 HKEY_PERFORMANCE_DATA。 返回的值是一个 8 字节值。 有关详细信息,请参阅 性能计数器。
若要获取系统自启动以来在工作状态下花费的时间,请使用 QueryUnbiasedInterruptTime 函数。
注释QueryUnbiasedInterruptTime 函数在 Windows 的调试(“checked”)生成时生成不同的结果,因为中断时间计数和时钟周期计数在大约 49 天内进行高级。 这有助于识别在系统长时间运行之前可能不会发生的 bug。
例子
// calculate a 't' value that will linearly interpolate from 0 to 1 and back every 20 seconds
DWORD currentTime = GetTickCount();
if ( m_startTime == 0 )
{
m_startTime = currentTime;
}
float t = 2 * (( currentTime - m_startTime) % 20000) / 20000.0f;
if (t > 1.0f)
{
t = 2 - t;
}
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [桌面应用 |UWP 应用] |
支持的最低服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | 窗户 |
标头 | sysinfoapi.h (包括 Windows.h) |
库 | Kernel32.lib |
DLL | Kernel32.dll |