火狐与我的计时器交互?!(跟踪)
Firefox interacts with my timers ?! (followup)
首先请阅读我以前的帖子,我认为我已经解决了这个问题。(没有时间就跳过)
火狐以某种方式与我的计时器交互?这太疯狂了^^
对于那些不想阅读的人,我将总结一下:Firefox在运行时弄乱了我的计时器,所以我不得不从timeGetTime()切换到QueryPerformanceCounter(),正如stackoverflow成员所建议的那样。它仍然受到同样的问题(firefox运行使一切都"快进")。我现在不明白为什么。也许我在这里搞砸了:
ULONG CTimer::time()
{
__int64 temp;
QueryPerformanceCounter((LARGE_INTEGER*)&temp);
return (ULONG)(temp*1000/freq);
}
// where freq is the one queried with QueryPerformanceFrequency()
有人知道吗?也欢迎任何提示
如何计算运动?如果您使用QueryPerformanceCounter准确地计算delta-time(从最后一个tick开始的时间),并基于此计算运动,您应该没问题。所以每个物体每一秒移动的距离应该是delttime * speed。
我最好的猜测是你没有这样做,而是基于帧率,当你打开Firefox时帧率会改变(无论出于什么原因)。展示你的代码会很有帮助。
还有一件事- QueryPerformanceCounter/Frequency对于不同的内核可能是不同的-你的应用程序是多线程的吗?如果是这样,打开Firefox可能会导致Windows将您的应用程序转移到执行不同的核心,其中QueryPerformanceCounter/Frequency是不同的。您必须确保始终从同一个处理器核心调用它们(在调用它们的线程上设置处理器关联)。Firefox本身不会乱搞高性能计时器,所以setInterval等东西的结果取决于其他东西,如Google Chrome,是否这样做。
相关文章:
- Qt VTK交互风格的信号到小部件
- 光线跟踪器灯光反射错误
- 人脸跟踪arduino代码的优化
- Qt Quick-如何仅从c++代码与qml属性交互
- 跟踪滚动条上的鼠标事件
- 如何使用新运算符跟踪在循环中创建的 QLabel
- 复制和交换习惯用法与移动操作之间的交互
- C++:跟踪类对象
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 跟踪日志中的T.11803()是什么意思?
- 为什么在访问 vtkRenderWindow 的"交互器"变量时会发生段错误?
- 我能做些什么来跟踪矢量元素?
- Qt QGraphicsProxyWidget 与 QGraphicsScene 的交互
- 两个进程可以通过跟踪附加到同一个 PID 吗?
- 提升堆栈跟踪不显示函数名称和行号
- cygwin_exception::open_stackdumpfile:将堆栈跟踪转储到 class4.exe.sta
- 如何按指针查看堆栈跟踪
- WinDbg 不显示某些小型转储文件的完整堆栈跟踪
- 内存分配究竟是如何发生的,Java和C如何交互以跟踪同一对象?
- 火狐与我的计时器交互?!(跟踪)