1

アプリでの各httpClientオブジェクトの作成でQNetworkAccessManagerを使用し、HttpClassがスタックから外れた後に削除します。ループ内で、300のhttpリクエストのようなものがあります
。4.8からhttpリクエストがマルチスレッドであることがわかっているので、恐れることはありません。私が好きなように卑劣に実行し、それは素晴らしい働きをします。
問題は、すべてのスレッド要求(すべての300)がいつ実行されたかをどのように知ることができるかということです。何らかの信号を発することができますか?これはリクエストのループです。httpクライアントの横には通常のhttpシグナルがあります

    QMapIterator<QString,QString> i(m_urlMap);

    while (i.hasNext())
    {
        i.next();        
        QString sUrl = i.value();;
         HttpClient* pHttpClient = new  HttpClient(m_pFileOutput,m_pMutex);
         bool bReturnInvokeHttpClient = false;
         bReturnInvokeHttpClient = pHttpClient->startRequest(sUrl);


    }

各httpclientmがその仕事を終えたときに、手動で追跡する必要がありますか?

4

1 に答える 1

1

QNetworkAccessManagerには、リクエストが終了したときにオフになるシグナルのみがありますが、最後のシグナルが終了したときにオフになるシグナルはありません。だから私はあなたが自分自身を追跡しなければならないのではないかと心配しています。

よろしくお願いします

于 2012-10-24T15:11:44.197 に答える