Qual è la migliore pratica per comunicare con un altro thread in Qt?
-
02-10-2019 - |
Domanda
Ho un QThread classe derivata che comunica con il thread principale con l'invio di QEvents ad esso.
Qual è il modo migliore per il thread principale di comunicare con il secondo thread?
Il filo principale ha un puntatore al secondo.
Soluzione
Il modo migliore per comunicare tra oggetti in Qt è utilizzare segnali e slot. È un modo thread-safe che viene gestita dal ciclo degli eventi e non richiede alcun blocco da parte dell'utente. È inoltre possibile utilizzare gli eventi, anche se questo utilizzo sembra un po 'strano -. Un evento è una notifica di qualcosa che accade, non è uno strumento per chattare
È inoltre possibile utilizzare la filettatura primitive come QMutex, QSemaphore, QWaitCondition e QReadWriteLock (stesso di un QMutex, ma come suggerisce il suo nome, si permette di bloccare sia per la lettura o la scrittura, non entrambi allo stesso tempo).
Si dovrebbe leggere la documentazione Qt, in particolare vi consiglio di iniziare con la Discussione di Supporto in Qt pagina .