0

我使用 QThread 有一个(我认为是)奇怪的行为。我正在使用 3.x 内核在 GNU/Linux 中进行测试

当我使用渲染线程来实现应该在 QGLWidget 中绘制的 opengl 操作时,如果我在我的 Phenom II X4 中运行它,它工作正常。但是,如果我在 Intel(R) Atom(TM) CPU N550 1.50GHz 中运行,则 GUI 仅在触发事件时才会刷新,(如果我移动鼠标或按下键盘)我尝试使用信号/事件跨越线程通知主线程更新自己,但它不起作用。我已经在渲染线程中调用了 QGLWidget 的更新方法,但它也不起作用。

我可以用这个例子重现它 http://mih.voxindeserto.de/threadedcube.html 如果我添加这个调用

setRotation(rand()%120,rand()%120,rand()%150);

在 ExampleRenderThread 的渲染线程的 run 方法中。

这些机器具有相同的操作系统,Archlinux x86_64 和 3.0.7 内核

我不知道是硬件相关还是某些 QThread 设置或事件过滤。可能会发生什么?

4

0 回答 0