我正在製作一個必須使用並行處理的程序(C++),它將調用一些函數,並且一些窗口將通過模擬串行端口(qserialport)與我的硬件交互。QT中的串行端口和OpenCV線程
我有嚴重的問題來定義我的軟件的基本結構(主要是因爲我不知道如何使用並行化)。
有一個串口連接到它連續通話,硬件也有通過USB連接的攝像頭,使用OpenCV庫來處理視頻。
我需要同步並完成這些任務並且我有嚴重的混淆。
我有一個班,將使串行端口工作。我有一門課程可以與相機一起工作並完成識別任務。我想我會有一個線程來同步這些任務。我有一個主窗口,將與這些任務交互。目前,所有這些作品都在主線程中運行。
主線程與其他人進行通信的最佳方式是什麼?並同步? (這對我來說很複雜,因爲我在主線程中使用了一些數據,比如圖像或配置串口)。 什麼是「正確」的方式來做到這一點(我明白這是一個非常抽象的問題,我認爲我的問題非常普遍,那麼所有的建議都會很好地被接受)?我需要多少個線程? PS:現在,我有一個在主窗口中定義的結構,它維護着指向其他初始化對象(如Vision和SerialPort)的指針,它可以工作,但我需要鎖定,直到軟件識別或硬件做出動作,這是一個大問題!如果我嘗試將這些結構移到一個線程,程序崩潰。
非常感謝!
非常感謝您的回答克里斯,也是您的時間! 現在我有嚴重的問題來同步我的QThread的,但你的答案是好的。按照您的建議使用這兩個qthread,並使用另一個QThread來管理它們之間的同步。 現在我不能將這些qthreads與主線程進行通信,當我嘗試從主線程向這些線程發送信號時我沒有問題,但是當我嘗試向主線程發送信號時,我在執行時收到警告。我會用一些代碼片段來打開另一個問題。謝謝!迭戈 – Diego