簡體   English   中英

從多個線程訪問QTcpSocket

[英]Access QTcpSocket from multiple threads

我正在修改一個用Qt編寫的大型項目,當某些請求到來時會生成qthreads。 這些線程中的每個線程都編寫一個QTcpSocket,它在主線程中創建並連接到服務器。

線程類具有對QTcpSocket的引用。 在需要寫入數據時,套接字寫入數據並調用waitForBytesWritten,然后返回。

然后,線程在某種情況下等待,直到從套接字發出readyRead信號為止。

套接字上的訪問受互斥鎖保護。

對我來說,問題是我看到很多“ QSocketNotifier:無法從另一個線程啟用或禁用套接字通知程序”的警告。 這是因為我正在從另一個線程在套接字上寫(套接字已在主線程中創建)。

我知道最好的解決方案應該是使用信號和插槽來寫入和讀取,但是不幸的是,該項目非常復雜,我沒有時間來改變這種行為。

我能做什么?

您可以更改QTcpSocket實例的線程關聯性以禁止顯示警告。

但這確實不是正確的方法,您最好使用信號/插槽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM