16,215
社区成员
发帖
与我相关
我的任务
分享
void MyTcpServer::ReceiveData()
{
/*收取报文后创建一个线程执行任务*/
QThread * pNewThread = new QThread(); //线程对象
TcpService * pNewService = new TcpService(); //逻辑处理对象
/*Tcp服务器连接 Tcp逻辑处理(通知需要处理)*/
connect(this,SIGNAL(ServiceStart(QByteArray,unsigned int)),pNewService,SLOT(ServiceStart(QByteArray,unsigned int)),Qt::QueuedConnection);
/*Tcp逻辑处理连接Tcp服务器 (通知处理完毕). */
connect(pNewService,SIGNAL(ServiceFinsh(QByteArray,unsigned int)),this,SLOT(ServiceFinsh(QByteArray,unsigned int)),Qt::QueuedConnection);
/*线程完结 释放业务逻辑对象,这两行是否有区别??*/
QObject::connect(pNewThread, &QThread::finished, pNewService, &QObject::deleteLater,Qt::QueuedConnection);
//QObject::connect(pNewThread, &QThread::finished, pNewService, SLOT(pNewService->deleteLater()),Qt::QueuedConnection);
/*线程完结 释放线程本身对象*/
QObject::connect(pNewThread, &QThread::finished, pNewThread, &QObject::deleteLater,Qt::QueuedConnection);
/*不调用没有发现影响??*/
// QObject::connect(pNewThread, &QThread::finished, pNewThread, &QThread::quit,Qt::QueuedConnection);
// QObject::connect(pNewThread, &QThread::finished, pNewThread, &QThread::exit,Qt::QueuedConnection);
/*移到多线程工作*/
pNewService->moveToThread(pNewThread);
/*开始*/
pNewThread->start();
/*Tcp服务器发送信号给Tcp逻辑处理*/
emit(ServiceStart(Fmt,Fmt.size()));
return;
}
/*线程完结 释放业务逻辑对象,这两行是否有区别??*/
QObject::connect(pNewThread, &QThread::finished, pNewService, &QObject::deleteLater,Qt::QueuedConnection);
//QObject::connect(pNewThread, &QThread::finished, pNewService, SLOT(pNewService->deleteLater()),Qt::QueuedConnection);
/*线程完结 释放线程本身对象*/
QObject::connect(pNewThread, &QThread::finished, pNewThread, &QObject::deleteLater,Qt::QueuedConnection);
/*不调用没有发现影响??*/
// QObject::connect(pNewThread, &QThread::finished, pNewThread, &QThread::quit,Qt::QueuedConnection);