首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定当前的Windows定时器分辨率?

如何确定当前的Windows定时器分辨率?
EN

Stack Overflow用户
提问于 2014-01-21 15:48:26
回答 1查看 5.9K关注 0票数 2

这可能很明显,但我找不到/谷歌正确的方法来获得定时器解析的当前系统值,程序可以通过timeBeginPeriod(n)/timeEndPeriod(n)设置这个值。我想知道现在的决议是什么..。Windows 7的默认值似乎是15.6ms,但其他应用程序或机器供应商可能已经更改了设置。

有一些工具可以报告值,但我需要在应用程序中读取该值。

谢谢您的快速提示或链接。C#将是一个优势,但我知道我的方式与P/调用

编辑:,感谢答案,我在C#中做了一个小工具,它使用了描述的方法:github.com/tebjan/TimerTool

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-21 16:54:16

Windows计时器解析由隐藏的API调用提供:

代码语言:javascript
复制
NTSTATUS NtQueryTimerResolution(OUT PULONG MinimumResolution, 
                                OUT PULONG MaximumResolution, 
                                OUT PULONG ActualResolution);

NtQueryTimerResolution由本机Windows库NTDLL.DLL导出。

通用硬件平台为ActualResolution报告156,250或100,144;旧平台可能报告更大的数字;较新的系统,特别是当支持高精度事件计时器( HPET )或常数/不变TSC时,ActualResolution可能返回156,001。

timeBeginPeriod(n)的调用反映在ActualResolution中。

回答中的更多细节。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21262821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档