0

ブラックベリー10の開発にQtを使用しています。QFuture、QtConcurent::run を使用しています。これは私のコードです:

アプリケーションui.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: 別のスレッドにある親の子を作成できません。(親は LoadData(0x82ea9b0)、親のスレッドは QThread(0x8082440)、現在のスレッドは QThread(0x82eac68) です)

なぜこれが起こるのですか?これを解決するには?

4

1 に答える 1