先看效果图,示例发送数据“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 }
复杂的事情,我们要简单做,滴滴滴
原文地址:https://www.cnblogs.com/Kevinsh-Lee/p/11701219.html
时间: 2024-10-09 03:00:17