关于QTime::currentTime()
的Qt文档说:
请注意,准确性取决于底层的准确性 操作系统;并非所有系统都能提供1毫秒的精度。
但是有没有办法在Windows 7中以毫秒精度获得这段时间?
答案 0 :(得分:2)
定时器分辨率可能因平台而异,读数可能不准确。如果您需要在Windows 7上获得高分辨率,准确的时间戳,它提供了QPC API:
https://msdn.microsoft.com/en-us/library/windows/desktop/dn553408%28v=vs.85%29.aspx
声称 GetSystemTimePreciseAsFileTime
提供的系统时间为<1us resolution。
但这只是关于准确的时间戳。如果您需要实际执行1 ms延迟(例如处理事件),则需要RTOS,而不是桌面插件。
答案 1 :(得分:1)
您可以使用C / C ++中time.h头文件提供的功能。
#include <time.h>
clock_t start, end;
double cpu_time_used;
int main()
{
start = clock();
/* Do the work. */
end = clock();
cpu_time_used = ((double)(end-start)/ CLOCKS_PER_SEC);
}
答案 2 :(得分:1)
您可以使用QDateTime
类并使用适当的格式转换当前时间:
QDateTime::currentDateTime().toString("yyyy/MM/dd hh:mm:ss,zzz")
其中&#39; z &#39;对应于毫秒精度。
答案 3 :(得分:0)
一种常见的方法是扩大你正在做的事情并连续做10-100次,这样你就可以通过将结果除以10来更准确地读取你正在做的事情。 -100。
但是,获得毫秒精确的时间读数几乎没用,因为你没有100%的cpu时间,这意味着如果操作系统提供另一个进程,你的读数将比1毫秒更大的差异在你做你的行动时计算时间。