2011-06-15 5 views
14

Lo siento por el fraseo cómico de la pregunta. No pude resistir ;-)Si se emite una señal Qt en el bosque y nadie está cerca para escucharla, ¿hace un sonido?

Si I emit una señal que no está conectada a una ranura en ninguna parte del código, ¿existe todavía un costo de rendimiento asociado con esa "emisión". No estoy familiarizado con el mecanismo a través del cual se implementan las señales/ranuras de Qt, por lo que me disculpo si esta pregunta revela mi ignorancia fundamental del diseño subyacente de Qt.

+1

Me encanta la pregunta. Desearía saber la respuesta. –

+5

Estándar para el patrón Observer. Si no hace ningún sonido si no hay nadie para observar. El esfuerzo por encontrar un puntero nulo no es nulo. Pero, por supuesto, nada de lo que te preocupes. –

+0

Sí, +1 por el título! –

Respuesta

8

Al menos uno pequeño. Qt al menos necesita buscar en la lista de ranuras conectadas de la señal (o algo así, no está seguro de eso) hasta que ve que no tiene que llamar nada. Pero ese golpe de rendimiento debería ser insignificante, teniendo en cuenta que estás usando un entorno de alto nivel como las señales y ranuras de Qt, de todos modos.

Cuestiones relacionadas