0
我正在使用Qt進行黑莓10開發。我使用QFuture,QtConcurent :: run。 所以這是我的代碼:QFuture不能爲父母在不同的線程中創建子代
applicationui.cpp
LoadData* Data = new LoadData(url);
// Invoke our onLoading Finished slot after the loding has finished.
bool ok = connect(&m_watcher, SIGNAL(finished()),SLOT(onLoadingFinished()));
Q_ASSERT(ok);
Q_UNUSED(ok);
// starts watching the given future
m_watcher.setFuture(future);
,並在LoadData.cpp
int LoadData::startLoading()
{
QNetworkAccessManager* netManager = new QNetworkAccessManager(this);
const QUrl url(_URL);
QNetworkRequest request(url);
QNetworkReply* reply = netManager->get(request);
bool ok = connect(reply, SIGNAL(finished()), this, SLOT(onReplyFinished()));
Q_ASSERT(ok);
Q_UNUSED(ok);
return 0;
}
但是當我運行應用程序,這些是在錯誤控制檯:
QObject:Canno爲不同線程中的父項創建子項。 (Parent是LoadData(0x82ea9b0),父母的線程的QThread(0x8082440),當前線程的QThread(0x82eac68)
爲什麼會出現這種情況?如何解決這個問題?