Stavo analizzando un codice sorgente su cui sto lavorando. Ho trovato una dichiarazione particolare che qualcuno aveva codificato. Il codice sorgente è un'applicazione GUI con una GUI QML e utilizza QT 4.7.x.La classe basata su QObject ha una connessione accodata a se stessa
Lo snippet di seguito appartiene alla logica dell'applicazione principale.
// connect signal-slots for decoupling
QObject::connect (this, SIGNAL(setCurrentTaskSignal(int)), this,
SLOT(SetCurrentTaskSlot(int)), Qt::QueuedConnection);
È strano che l'oggetto si collega a se stesso tramite una connessione coda che significa in sostanza che l'oggetto può "vivo" in diversi thread contemporaneamente?
A prima vista non aveva alcun senso per me. Qualcuno può pensare a qualche motivo per cui una tale connessione sarebbe plausibile o necessaria? Funzionerebbe anche questo?
Ha senso. Sto ancora guardando le cose che circondano il codice. Quindi tornerò una volta che è chiaro cosa sta succedendo. –
Quindi sembra che un segnale di cambio attività venga emesso mentre si esegue un calcolo e che "modifica" non dovrebbe avvenire immediatamente, ma dopo che il flusso corrente è stato eseguito e l'elaborazione dell'evento riprende. –