来自Windows平台,我通常使用Windows多媒体计时器产生一个分辨率为1ms +-1ms的周期性回调。所以我可以每秒产生1000个等距的回调。为了在不做繁忙等待的情况下实现这种精确性,MS使用了高精度事件计时器,它直接访问硬件驱动程序。
我希望找到类似boost库之类的东西,为这种高精度计时器提供跨平台实现。但我只发现了助推的ASIO定时器。因为他们根本不谈精度,所以我认为他们不能满足高精度的要求。一个10毫秒的抖动将是相当大的方式。
所以..。是否有类似于高精度事件计时器的跨平台实现?或者Boost-ASIO已经足够精确了?也许在内部推动使用HPET,只是没有提到它。
发布于 2015-03-27 10:42:02
没有任何实现能够保证整个宇宙的1ms分辨率(PC,xbox,android手机,.)。所有的实现都必须依赖于操作系统来提供这个解决方案,并且操作系统需要硬件支持。实现通常会降低分辨率,而OSes在不同的HW上也是如此。
Boost (和新的C++标准)提供了一个通用接口,但不能保证1ms。它们提供了在特定平台上所能得到的最好结果。您可以在运行时获取有关解析的信息并拒绝运行。
https://stackoverflow.com/questions/29261814
复制相似问题