我正在制作一个必须使用并行处理的程序(C++),它将调用一些函数,并且一些窗口将通过模拟串行端口(qserialport)与我的硬件交互。QT中的串行端口和OpenCV线程
我有严重的问题来定义我的软件的基本结构(主要是因为我不知道如何使用并行化)。
有一个串口连接到它连续通话,硬件也有通过USB连接的摄像头,使用OpenCV库来处理视频。
我需要同步并完成这些任务并且我有严重的混淆。
我有一个班,将使串行端口工作。我有一门课程可以与相机一起工作并完成识别任务。我想我会有一个线程来同步这些任务。我有一个主窗口,将与这些任务交互。目前,所有这些作品都在主线程中运行。
主线程与其他人进行通信的最佳方式是什么?并同步? (这对我来说很复杂,因为我在主线程中使用了一些数据,比如图像或配置串口)。 什么是“正确”的方式来做到这一点(我明白这是一个非常抽象的问题,我认为我的问题非常普遍,那么所有的建议都会很好地被接受)?我需要多少个线程? PS:现在,我有一个在主窗口中定义的结构,它维护着指向其他初始化对象(如Vision和SerialPort)的指针,它可以工作,但我需要锁定,直到软件识别或硬件做出动作,这是一个大问题!如果我尝试将这些结构移到一个线程,程序崩溃。
非常感谢!
非常感谢您的回答克里斯,也是您的时间! 现在我有严重的问题来同步我的QThread的,但你的答案是好的。按照您的建议使用这两个qthread,并使用另一个QThread来管理它们之间的同步。 现在我不能将这些qthreads与主线程进行通信,当我尝试从主线程向这些线程发送信号时我没有问题,但是当我尝试向主线程发送信号时,我在执行时收到警告。我会用一些代码片段来打开另一个问题。谢谢!迭戈 – Diego