Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Erkennen ob irgendein Thread beendet wird.

  Alt 3. Mär 2012, 22:27
Es geht um eine Komponente und da werde ich nicht noch eine DLL mitliefern, außerdem bin nicht ich derjenige, welcher den Thread startet oder beendet.

Es geht immernoch um eine Komponente und da kann ich nicht einfach so fremde Ereignismethoden überschreiben. (Woher soll ich denn wissen, ob die nich schon belegt sind? )
Und wie schon erwähnt, geht es nicht nur um TThread-Threads, womit das OnTerminate eh wegfällt.



Es gibt eine Methode SetzeWert, welche für den aktiven Thread einen Wert ablegt, als threadvar.

Später wird irgendwann eventuell eine weitere Methode aufgerufen, welche diesen Wert verarbeitet, falls Einer vorhanden ist.



Das Problem ist eben, daß threadvars über keine Finalizierung verfügen, so daß es zu Speicherlecks kommen könnte, wenn die enthaltenen Daten nur referenziert sind, wie es z.B. bei Strings und Interfaces der Fall ist.



Aber ich glaub ich hab eine Lösung. Mal sehn ob es auch so funktioniert, wie ich es mir ausgedacht hab.
Über eine weitere threadvar wird geregelt, ob für den aktiven Thread ein Wert abgelegt werden darf und wenn, dann wird über ein Interface die Freigabe erledigt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat