It is said in this post (https://stackoverflow.com/questions/38376840/qt-signals-and-slots-direct-connection-behaviour-in-application-with-a-single-th) that:
- If it is a direct connection, your code is ALWAYS executed on a single thread, regardless as to whether or not the slot is running on a different thread. (In most cases a VERY BAD idea)
- If the connection is queued and the slot is running inside the same thread, it acts exactly like a direct connection. If the slot is running on a different thread, the slot will execute within its proper thread context that it is running in, so making the code execution multi-threaded.
- If the connection is auto which is the default, for a good reason, then it will chose the appropriate connection type.
According to this statement, when in same thread, queued connection acts exactly like a direction connection, that will then be identical to a simple function call, which means the emission will not return until the queued slot finished execution?
I do not feel this right, anyone can help to clarify?