2011-06-15 6 views
14

Ci scusiamo per il fraseggio umoristico della domanda. Non ho potuto resistere ;-)Se un segnale Qt viene emesso nella foresta e nessuno lo sta ascoltando, emette un suono?

Se I emit un segnale che non è collegato a uno slot in qualsiasi parte del codice, c'è ancora un costo di prestazioni associato a tale "emissione". Non ho familiarità con il meccanismo tramite il quale vengono implementati i segnali/slot di Qt, quindi mi scuso se questa domanda rivela la mia fondamentale ignoranza del design sottostante di Qt.

+1

Ama la domanda. Vorrei sapere la risposta. –

+5

Standard per il pattern Observer. Se non fa rumore se non c'è nessuno da osservare. Lo sforzo di trovare un puntatore nullo non è nullo. Ma naturalmente nulla di cui ti preoccupi. –

+0

Sì, +1 per il titolo! –

risposta

8

Almeno un piccolo. Qt almeno ha bisogno di guardare nella lista degli slot connessi al segnale (o qualcosa del genere, non ne sono sicuro) finché non vede che non deve chiamare nulla. Ma quel successo sulle prestazioni dovrebbe essere trascurabile, considerando che stai usando un ambiente di così alto livello come i segnali e gli slot di Qt, comunque.