gpt4 book ai didi

Windows 7 多线程编程中的 C 高精度时间戳(以微秒为单位)

转载 作者:行者123 更新时间:2023-11-30 15:21:30 24 4
gpt4 key购买 nike

如何在 Windows 7(2015 年)中的多线程/线程安全 C 编程中获得高精度/接近精确的微秒(系统时间)时间戳。

时间戳可能是年:日:月:小时:分钟:秒:毫秒:微秒

最佳答案

如果您正在寻找真实世界的时间戳而不仅仅是时间间隔测量(正如您的评论所建议的,时间戳可以采用年:日:月:小时:分:秒:毫秒:微秒格式),然后GetSystemTimeAsFileTime () 可能是您将得到的最好的东西。它填充 FILETIME结构,它使用 100nS 的单位,尽管所提供的数据的实际分辨率几乎肯定不会像 FILETIME 结构的单位所暗示的那么高分辨率(显然 FILETIME 结构的设计者希望为 future 留出足够的空间)改进!)

获得 FILETIME 对象后,您可以将其转换为 SYSTEMTIME对象使用 FileTimeToSystemTime ()。 SYSTEMTIME 对象将时间分为年/月/日/小时/分钟/秒/毫秒字段(抱歉,没有微秒)。

另一方面,如果您的目的实际上只是测量时间间隔,并且不需要将它们与绝对的现实世界日期/时间相匹配,那么您就有一些 other options 。最精确的 API 是 QueryPerformanceCounter (),但即便如此,我也不会抱太大希望——Windows 不是实时操作系统,它缺乏实时性能将反射(reflect)在您从中获得的结果的质量中。

关于Windows 7 多线程编程中的 C 高精度时间戳(以微秒为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29553146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com