Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
Delphi 2007 Professional
|
AW: Objekt als Rückgabe von Funktion - Wie elegant Freigabe regeln?
24. Aug 2013, 22:45
Eigentlich ist es doch recht einfach:
man benötigt mehrere Instanzen des Data-Transfer-Objects.
Eine Instanz bleibt immer beim Threadobjekt; es wird im Konstruktor erzeugt und im Destruktor freigegeben.
(es ist ein Aggregatobjekt)
Weitere Instanzen leben ausserhalb des Threads und werden bei Bedarf erzeugt und wieder zerstört.
Mit der Methode Assign
werden die Daten zwischen den Objekten kopiert.
Ablauf:
* lokales Data-Transfer-Objekt erzeugen
* besagte Funktion aufrufen (mit dem Objekt als Parameter) das das Objekt befüllt
* Threadobjekt erzeugen
* lokales Data-Transfer-Objekt auf das interne Data-Transfer-Objekt des Thread kopieren
* lokales Data-Transfer-Objekt freigeben
* Thread starten
Kein Stress mit Interfaces, keine Tricks, keine Unsicherheiten wer jetzt für das Objekt zuständig ist (also wer der Owner ist).
|