用于多线程的插槽和信号

时间:2013-05-21 19:27:19

标签: multithreading qt pthreads

我在pthread工作,为绘图准备数据集。然后我需要在主窗口中显示这些数据,如图形。如何将线程中的数据集传输到主窗口中的呈现窗口小部件。

我使用插槽和信号。当我的线程比插槽更频繁地发出信号时会发生什么。

问题是我使用QMap*将数据集从一个线程传输到另一个线程。我需要确信插槽完成了它的工作,我可以在工作线程中更新这个地图。

1 个答案:

答案 0 :(得分:0)

首先,我假设你的意思是你有'QThread'的工作,而不是pthread(如posix线程)。在这种情况下,您可以使用信号和插槽将数据传递到主线程进行渲染。

比插槽更频繁地接收它的频率是多少?你有没有尝试过,你有问题,或只是猜测你认为可能出错的事情?如果您实际上遇到发送太多信号的问题,那么批处理处理线程上的数据并定期发送批处理。

至于确保插槽已完成其工作,您可以使用QMutex来控制每个线程中对QMap的访问。 QMutex的Qt帮助清楚地解释了它的用法;锁定互斥锁,完成工作然后解锁。

相关问题