Thread startet Funktion
-
Ich starte von einem Dialog aus einen (Arbeits)Thread. Wenn dieser "fertig" ist würde ich gerne in dem Dialog eine Funktion ausführen. Ich könnte nun dem Thread einfach einen Zeiger auf den Dialog übergeben und bei Threadende eine entsprechende DialogFunktion ausführen lassen.
Aber u.U. ist ja der Dialog schon geschlossen, das kann doch besitmmt Probleme geben, oder?
Gibt es vll. alternative Lösungsansätze? Wenn ja, wie würden die aussehen?
-
Korrekt. Wenn es eine Funktion in einer Klasse sein soll, dann muss diese Klasse auch noch existieren. In der reinen Theorie kannst Du auch eine Nachricht an ein bestimmtes Fenster senden, nur wenn das Fenster in der zwischenzeit geschlossen und das Handle recycled worden ist, dann geht die Nachricht an das alte Fenster...
Du kannst Auch Deinen Dialog auf dem Heap anlegen und über Smartpointer verwalten.
Am einfachsten ist sicherlich ein Zeiger, den der Thread benutzen kann und das NULL setzen, des Zeigers, wenn der Dialog schließt.
Achte hier auf Threadsynchronisation!
-
Wo und wie habe ich die Möglichkeit, den return-Wert meiner ThreadFunktion abzufangen?
-
Du kannst den nicht abfangen, aber abfragen dafür. Mit GetExitCodeThread.