|
初学Qt,正好要做一个网站的压力测试,想着多开几十个线程同时访问网站,运行时每个线程都出现错误:
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QNetworkAccessManager(0x13d23660), parent's thread is QThread(0x13cf11f0), current thread is HttpThread(0x13d5b480)
哪位大神能指点一下啊。
后台线程代码如下:
HttpThread::HttpThread(QObject *parent) : QThread(parent){ m_bRun = true; m_namHttp = new QNetworkAccessManager(this); m_req = QNetworkRequest(QUrl("http://192.168.199.142")); connect(m_namHttp, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));}
void HttpThread::stop(){ m_bRun = false;}
void HttpThread::run(){ while (m_bRun) { m_milliSecond = 0; m_timeStart = QTime::currentTime(); m_namHttp->get(m_req); m_bConnect = true; while (m_bRun && m_bConnect) { msleep(10); } if (m_bRun) emit finishOnce(m_milliSecond); } m_bRun = true;}
void HttpThread::replyFinished(QNetworkReply *reply){ m_timeStop = QTime::currentTime(); m_milliSecond = m_timeStart.msecsTo(m_timeStop); reply->deleteLater(); m_bConnect = false;}
|
|