Firefox和我的计时器有什么互动?!?!这太疯狂了^^ 我在Win32 C++ DirectX游戏中有一个问题。我使用“timeGetTime”来获取当前时间,并使用它来播放动画,或者使用delta时间(在制作动画时,我还使用一个常量进行规范化)来实现逻辑。我有时使用低至2毫秒的滴答声。当我与时间一起工作时,我只使用Ulong。游戏运行得很好,但如果我启动Mozilla Firefox,我启动游戏,毕竟游戏玩得很快(动画和游戏逻辑)。就像快进一样。奇怪的是,似乎有几个计时器不受此影响。有人有线索吗?Firefox和我的计时器之间有什么联系?退出Firefox后保持不变,但经过一段未定义的时间或重新启动电脑后,Firefox恢复正常。任何建议都将不胜感激,即使可能性不大。谢谢。

Firefox和我的计时器有什么互动?!?!这太疯狂了^^ 我在Win32 C++ DirectX游戏中有一个问题。我使用“timeGetTime”来获取当前时间,并使用它来播放动画,或者使用delta时间(在制作动画时,我还使用一个常量进行规范化)来实现逻辑。我有时使用低至2毫秒的滴答声。当我与时间一起工作时,我只使用Ulong。游戏运行得很好,但如果我启动Mozilla Firefox,我启动游戏,毕竟游戏玩得很快(动画和游戏逻辑)。就像快进一样。奇怪的是,似乎有几个计时器不受此影响。有人有线索吗?Firefox和我的计时器之间有什么联系?退出Firefox后保持不变,但经过一段未定义的时间或重新启动电脑后,Firefox恢复正常。任何建议都将不胜感激,即使可能性不大。谢谢。,c++,firefox,timer,C++,Firefox,Timer,是的,TimeGetTIme的默认精度为5ms或更高 这可以通过调用timeBeginPeriod和timeEndPeriod函数进行更改。 更改TimeGetTime的精度会影响所有正在运行的应用程序。 我猜Firefox正在调用那些影响应用程序的函数 改为使用QueryPerformanceCounter/QueryPerformanceFrequency方法,该方法提供高分辨率计时,并且不受TimeGetTime问题的影响 编辑: 几个链接向您展示了如何使用这些函数 并注意MSDN页面上

是的,TimeGetTIme的默认精度为5ms或更高

这可以通过调用timeBeginPeriod和timeEndPeriod函数进行更改。 更改TimeGetTime的精度会影响所有正在运行的应用程序。 我猜Firefox正在调用那些影响应用程序的函数

改为使用QueryPerformanceCounter/QueryPerformanceFrequency方法,该方法提供高分辨率计时,并且不受TimeGetTime问题的影响

编辑: 几个链接向您展示了如何使用这些函数

并注意MSDN页面上的备注:

另外,要注意包装计数器。因此,这种行为是一个错误:“退出Firefox后,它保持不变,但在一段未定义的时间或重新启动电脑后,它会恢复正常”?像Firefox不调用timeEndPeriod吗?@Matt H Wuhoo谢谢。这是有道理的。这里有点晚了,我明天再修。但是你能告诉我更多关于包装柜台的情况吗?我知道包装是什么意思,但我不明白这个问题。。这些计时器不应该在包装前运行25天吗?要不要扩大一点?听起来不错。时间应该被重置。但在任何情况下,您都不希望其他应用程序影响您的跑步应用程序。这也是一个bug。+1:使用QueryPerformanceCounter/Frequency作为游戏相关时间-其他计数器不够精确。顺便问一下,是什么版本的Firefox造成的?