QT多線程的簡單使用,主線程發一份數據,子線程收兩份數據


先看效果圖,示例發送數據“Hello World”

主線程:0x16f54aeda20,另兩個子線程分別是0x4f1baff690、0x4f1baff6a0

因為在子線程中加了200ms、400ms延遲,所以打印是有先后順序的

核心代碼也就一丟丟。代碼邏輯就是使用信號與槽使用線程之間產生聯系

 1 MfBusiness::MfBusiness(QObject *parent) : QObject(parent)
 2 {
 3 connect(&se,&MfSendData::Sgl_Send,&re1,&MfRecvData1::On_Recv);
 4 connect(&se,&MfSendData::Sgl_Send,&re2,&MfRecvData2::On_Recv);
 5 re1.moveToThread(&th1);
 6 re2.moveToThread(&th2);
 7 th1.start();
 8 th2.start();
 9 }
10 void MfBusiness::DecodeData(QString str)
11 {
12 QByteArray data=str.toUtf8();
13 se.HandleData(data);
14 qDebug()<<"main";
15 qDebug()<<str;
16 qDebug()<<QThread::currentThread();
17 }

 復雜的事情,我們要簡單做,滴滴滴


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM