我可以知道QNetworkAccessManager是否完成了处理所有http请求?

时间:2012-10-24 09:11:11

标签: c++ qt http signals

我在我的应用程序中创建每个httpClient对象时使用QNetworkAccessManager并在HttpClass离开堆栈后将其删除,我有300个http请求的内容
我在aloop中做的,我知道从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);


    }

在完成工作时,我是否需要手动跟踪每个httpclient?

1 个答案:

答案 0 :(得分:1)

QNetworkAccessManager只有一个信号在 a 请求完成时熄灭,但没有一个信号在最后一个请求完成时熄灭。因此,我必须自己跟踪。

祝你好运