16,212
社区成员
发帖
与我相关
我的任务
分享
class workTread : public QThread
{
Q_OBJECT
void run() Q_DECL_OVERRIDE
{
unsigned int arg;
/* ... here is the expensive or blocking operation ... */
emit resultReady(arg);
exec();
}
signals:
void resultReady(unsigned int arg);
};
class onDataRecvSoap;
class dataService :QObject
{
//Q_OBJECT
public:
dataService();
~dataService();
virtual void OnData(ns1__DataNotification *ns1__DataNotification_);
public slots:
void doTask(unsigned int arg);
private:
onDataRecvSoap m_onDataRecv;
workTread *m_dataServiceThread;
};
dataService::dataService()
{
//创建 m_dataServiceThread
m_dataServiceThread = new workTread();
connect(m_dataServiceThread, &workTread::resultReady, this, &dataService::dataServiceTask);
connect(m_dataServiceThread, &workTread::finished, m_dataServiceThread, &QObject::deleteLater);
//创建m_onDataThread
m_onDataThread = new workTread();
connect(m_onDataThread, &workTread::resultReady, this, &dataService::onDataTask);
connect(m_onDataThread, &workTread::finished, m_onDataThread, &QObject::deleteLater);
m_dataServiceThread->start();
m_onDataThread->start();
}
dataService::~dataService()
{
delete m_dataServiceThread;
delete m_onDataThread;
}
void dataService::OnData(ns1__DataNotification *ns1__DataNotification_)
{
}
void dataService::dataServiceTask(unsigned int arg)
{
while (true)
{
Sleep(2000);
std::cout << "dataServiceTask" << std::endl;
}
}
void dataService::onDataTask(unsigned int arg)
{
while (true)
{
Sleep(2000);
std::cout << "onDataTask" << std::endl;
}
}
Main里面
dataService