Einzelnen Beitrag anzeigen

choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#14

Re: Instanz sich selber zerstören lassen?

  Alt 19. Nov 2003, 15:45
Zitat von Minz:
Weil eine Instanz sich selber zerstört heißt das nicht, dass die Hauptanwendung, nichts davon mitbekommt. Nur liegt die Kontrolle der Selbstzerstörung nicht bei der Hauptanwendung [...]
Hallo Minz,
wie stellst Du sicher, dass niemals Referenzen auf das Objekt gehalten werden, bzw. wirklich alle Referenzen aufgehoben werden, wenn die "Hauptanwendung benachrichtigt wird"?

Darüber hinaus macht es keinen Unterschied, ob die "von außen"AnObject.Free; oder "von innen"Self.Free aufrufst, sofern anschließend nicht mit dieser Referenz arbeitest.
Letzteres ist kritisch, wenn Du mit der StdImplementierung von Delphis Interfaces arbeitest oder Du nicht hundertprozentig sicherstellen kannst, das nicht irgendwo (zB in Listen von Komponenten) noch auf das Objekt referenziert wird.

Eine oft elegantere Methode besteht darin, so lange eine Referenz auf das Objekt zu halten, bis es den Abschluss seiner Arbeit dem Klienten meldet und dieser seine Referenz freigibt. Sollte dies der letzte Verweis auf das Objekt gewesen sein, wird es freigegeben.
gruß, choose
  Mit Zitat antworten Zitat