[Development] About "finish" signal in QHttpNetworkConnectionChannel
markus at woboq.com
Thu Jul 19 21:31:30 CEST 2012
On 19.07.12 17:55, song.7.liu at nokia.com wrote:
> I am using the QNetworkAccessManager::get to request content from
> Then the QHttpNetworkConnectionChannel will be created and worked on
> another thread, when all the data is received, the
> QHttpNetworkConnectionChannel::allDone will be invoked, where:
> // queue the finished signal, this is required since we might send
> new requests from
> // slot connected to it. The socket will not fire readyRead
> signal, if we are already
> // in the slot connected to readyRead
> if (reply && emitFinished)
> QMetaObject::invokeMethod(reply, "finished",
> So this "finished" signal will be queued in the thread of
> QNetworkReplyHttpImpl until a new event will be handled.
> Finally, my application also won't receive any finished signal until
> for example: touch the screen to trigger the queued signal be handled.
> So why using the type Qt::QueuedConnection for this "finished" signal
> ? is there something wrong in my side ?
The finished() communicated will be "queued" anyway nowadays since the
inter-thread communication (from HTTP thread to your user thread) is
happening via the event loop. Also it is not queued until a new event
will be handled, it should flow to your user thread without further delay.
I have no idea right now why your issue could happen =>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Development