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