gpt4 book ai didi

c++ - 跨平台 C++ 高精度事件定时器实现

转载 作者:太空宇宙 更新时间:2023-11-04 13:36:51 25 4
gpt4 key购买 nike

来自 Windows 平台,我通常使用 Windows Multimedia Timer 来生成分辨率为 1 ms +-1ms 的周期性回调。所以我确实可以每秒产生 1000 个相当等距的回调。为了在不进行忙等待的情况下实现这种精度,MS 使用了 High Precision Event Timer ,它直接访问硬件驱动程序。

我希望找到类似 boost 库之类的东西,为这类高精度计时器提供跨平台实现。但我发现的只是 Boost-ASIO 计时器。由于他们根本不谈论精度,我认为他们不会满足高精度的要求。 10 毫秒的抖动就太多了。

所以.. 有类似高精度事件计时器的跨平台实现吗?还是 Boost-ASIO 已经足够精确了?也许 Boost 内部使用了 HPET,只是没有在任何地方提及它。

最佳答案

没有实现可以保证在整个世界(PC、xbox、android 手机...)中的 1ms 分辨率。所有实现都必须依赖操作系统来提供此解决方案,并且操作系统需要硬件支持。实现通常提供回退以降低分辨率,不同硬件上的操作系统也是如此。

Boost(和新的 C++ 标准)提供通用接口(interface)但不能保证 1ms。它们提供您在特定平台上可以获得的最佳服务。您可以在运行时获取有关解析的信息并拒绝运行。

关于c++ - 跨平台 C++ 高精度事件定时器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29261814/

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