Qt插槽 - 不同的速度发送器/接收器 - 防止排队数据

时间:2018-05-31 12:53:33

标签: multithreading qt qt-signals

我有两个相当独立的线程在运行。 一个生成数据,一个包含一些显示逻辑。

我通过一些

传输数据
QMetaObject::invokeMethod(processor, "newData");

在发电机侧。 (处理器是Widget中的一些QObject)。

我的数据生成线程可能比另一个更快,一切都变得非常慢。 在我的用例中显示旧数据毫无意义,所以我不希望invokeMethod调用排队。 应该忽略进一步的调用,或者 - 最好 - 只应该执行最新的调用。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

newData方法除了使用零成本复制容器(隐式共享)更新要显示的数据记录并请求窗口小部件更新外,什么都不做。然后,窗口小部件更新应该获取最新数据并显示它。