Red de conocimiento informático - Problemas con los teléfonos móviles - ¿La función Emitir en la programación QT es asíncrona o síncrona?

¿La función Emitir en la programación QT es asíncrona o síncrona?

La conexión de uso común, de hecho, el último parámetro usa el tipo Qt::AutoConnection:

Qt admite 6 métodos de conexión, de los cuales 3 son los más importantes:

Qt:: DirectConnection (modo de conexión directa)

Cuando se envía la señal, se llamará inmediatamente a la función de ranura correspondiente. El código después de la declaración de emisión se ejecutará después de que se hayan ejecutado todas las funciones de ranura. (La relación entre señales y funciones de ranura es similar a las llamadas a funciones, ejecutadas sincrónicamente)

Qt::QueuedConnection (modo de cola)

Cuando se envía una señal, se pone en cola en el cola de señales y necesita esperar hasta que se reciba. La señal se obtiene solo cuando el bucle de eventos del hilo al que pertenece el objeto toma el control y se llama a la función de ranura correspondiente. El código después de la declaración de emisión se ejecutará inmediatamente después de enviar la señal, sin esperar a que la función de ranura complete su ejecución. (En este momento, la señal se introduce en la cola de señales. La relación entre la señal y la función de ranura es similar a la comunicación de mensajes y la ejecución asincrónica)

Qt::AutoConnection (modo automático)

El modo de conexión predeterminado de Qt, si el objeto que envía la señal y recibe la señal pertenece al mismo hilo, el modo de trabajo es el mismo que el modo de conexión directa; de lo contrario, el modo de trabajo es el mismo que el modo de cola; .

Ver artículo:/qq419036154/article/details/6112503