我有两个(可选)函数处理传感器提供的数据。这些函数在它们自己的线程中运行,并在结果准备就绪时发出一个信号。该信号连接到UI小部件的插槽,显示结果。 有了其中的一个功能,这个效果很好。然而,当使用另一个时,GUI开始滞后并很快冻结。Qt:使用线程和信号/插槽时GUI有时会冻结
QDebug显示数据仍在处理中。
在GUI线程中运行代码时,没有问题。
也许问题是工人线程由于Qt的:: QueuedConnection产生数据的速度比用户界面可以借鉴它,导致有些滞后?如果是这样,我有什么替代方案?如果没有,我还能检查什么?
我们真的需要一些代码来帮助你解决这个问题。我唯一的猜测是,工作线程以比它可能处理的结果更多的结果发送UI线程垃圾邮件。你可以加一个油门进行测试,看看它是否有所作为? –
包括一个大的不必要的循环后,它运行得更顺畅。所以是的,这似乎表明工作线程速度太快,因为你和我都怀疑存在问题。我现在能做什么? – user1041903
我正在将讨论移至答案,因为看起来我们已经确认了根本原因.... –