【发布时间】:2011-11-11 15:26:26
【问题描述】:
在Qt中解决以下问题的好方法是什么:
我有一个传感器类,它不断产生数据。在这个数据上,需要一个接一个地执行几个操作,这可能需要相当长的时间。为此,我有一些额外的课程。基本上,每次记录一个新的数据项,第一个类应该获取数据,处理它,将它传递给下一个等等。
传感器 --> 第一类 --> ... --> 最后一类
我想将管道的各个类放入它们自己的线程中,这样当类 2 处理样本 n 时,类 1 可能已经在样本 n+1 上工作......
此外,由于各个步骤的性能可能有很大差异(例如,传感器比其他步骤快得多)而且我对过时的数据不感兴趣,我希望 1 级(以及之后的所有内容)始终获得来自其前身的最新数据,丢弃旧数据。因此,管道的步骤之间没有大的缓冲。
首先我考虑将 Qt::QueuedConnections 用于信号/插槽,但我想这会引入一个充满过时样本的队列,等待管道的较慢部分处理?
【问题讨论】:
标签: c++ multithreading qt