Sto cercando una soluzione per pianificare la cancellazione di un oggetto attraverso i thread. I documenti su come si comportano deleteLater
non sono completamente chiari. Posso chiamare questa funzione in un thread che non è il proprietario dell'oggetto?QObject :: deleteLater attraverso un QThread
Ad esempio, l'oggetto X è di proprietà del thread A e in Thread B mi piacerebbe avere l'oggetto X cancellato. Poiché l'oggetto potrebbe trovarsi all'interno dell'elaborazione dell'evento al momento (nella Discussione A), non posso cancellarlo in modo sicuro finché non torna al ciclo dei messaggi. Se chiamo deleteLater
da Thread B, tuttavia i documenti sembrano indicare che verrà eliminato non appena Thread B tornerà al loop dei messaggi.
Attualmente ho l'approccio di avere un segnale emesso nel thread A che è collegato a uno slot che chiama deleteLater
. Mi chiedo se c'è forse un modo più semplice per farlo - se davvero posso semplicemente chiamare deleteLater
da qualsiasi thread.
In Qt è possibile modificare quale thread possiede un oggetto. Ti aiuterebbe? – sashoalm
Ecco come l'oggetto entra nella discussione. –