Ich brauch mal kurz Hilfe - steh auf dem Schlauch:
Wenn ich eine Klasse erstelle welche von QThread abgeleitet ist und ich dieser via exec() eine eigene Eventloop spendiere, gilt doch trotzdem weiterhin das Speicherverwaltungssystem von Qt - auch ueber Threadgrenzen hinaus, oder?
Ich erstelle ein Thread-Objekt auf dem Heap und gebe ihm ein Parent mit.
Wird das Parent geloescht so sorgt Qt dafuer, dass zuvor mein Thread geloescht wird, richtig? Oder hat das Parent keine Kontrolle mehr ueber sein Kind, wenn dieses eine eigene Eventloop hat?
Und noch was: Wann wird das finishd()-Signal bei Threads mit Eventloop emittiert? Ich habe in Daniel Molkentins Buch gesehen, dass er bei Threads ohne Eventloop deren finished()-Signal mit dem deleteLater()-Slot verbindet - ist ja eine gute Idee. Wenn ich nun einen Thread mit Eventloop habe, kann ich ja auch sein finished()-Signal mit dem deleteLater()-Slot verbinden. Nur wann wird finished emittiert? In der Doku steht:
"This signal is emitted when the thread has finished executing."
Wann ist denn ein Thread mit Eventloop "fertig"? Wenn ich den quit()-Slot aufrufe? Dieser haelt ja die Eventloop an, sprich die exec()-Funktion wird verlassen und man landet wieder in der run(). Sobald diese verlassen wird sollte doch finished() emittiert werden. Existiert denn beim Verlassen von run() das Objekt noch solange bis es jemand loescht? Sollte schon, oder?
Ich moechte nur vermeiden, dass sich lauter Thread-Objekte im Speicher ansammeln, die ich nichtmehr brauche.
Ich hoffe mir konnte jemand folgen!
Falls nicht bitte schreiben, dann werde ich das nochmal umschreiben....
Col