我有一个关于 GetTickCount 函数的问题,我的代码中有两个调用这个函数,它们之间有几个命令,两个调用中的函数返回相同的计数。IE
var1 = GetTickCount();
code
:
:
var2 = GetTickCount();
var1 和 var2 具有相同的值。
有人可以帮忙吗?
我有一个关于 GetTickCount 函数的问题,我的代码中有两个调用这个函数,它们之间有几个命令,两个调用中的函数返回相同的计数。IE
var1 = GetTickCount();
code
:
:
var2 = GetTickCount();
var1 和 var2 具有相同的值。
有人可以帮忙吗?
假设这是 Windows GetTickCount调用,这是完全合理的:
GetTickCount 函数的分辨率受限于系统计时器的分辨率,通常在 10 毫秒到 16 毫秒的范围内。
请注意,它只是开始测量毫秒- 而这些天你可以在一毫秒内做很多事情。
文档继续说:
也许QueryPerformanceCounter
会更合适?
如果您指的是 Windows API 调用,请阅读此内容。我猜你是在尝试短时间间隔,所以这一段是相关的。你的时间比那个间隔更短吗?如果是这样,也许可以改用 QueryPerformanceCounter。
GetTickCount 函数的分辨率受限于系统计时器的分辨率,通常在 10 毫秒到 16 毫秒的范围内。GetTickCount 函数的分辨率不受 GetSystemTimeAdjustment 函数所做的调整的影响。
来自MSDN
GetTickCount 函数的分辨率受限于系统计时器的分辨率,通常在 10 毫秒到 16 毫秒的范围内。GetTickCount 函数的分辨率不受 GetSystemTimeAdjustment 函数所做的调整的影响。
经过的时间存储为 DWORD 值。因此,如果系统连续运行 49.7 天,时间将归零。若要避免此问题,请使用 GetTickCount64 函数。否则,在比较时间时检查溢出情况。
如果您需要更高分辨率的计时器,请使用多媒体计时器或高分辨率计时器。
GetTickCount 的分辨率为一毫秒(实际上是几毫秒)。您在两者之间调用的函数很可能花费了不到 1 毫秒的时间。