C# und zirkuläre Referenzen

07/05/2008 - 21:12 von Sebastian Lange | Report spam
Hallo,

Ich hab eine Frage und zwar wie ist das wenn eine Klasse Childs hat
die wiederum eine Referenz auf Ihren Erzeuger besitzen. In VB6 damals
war das ein Problem da eine Objekt solange gelebt hat wie es Referenzen
darauf gab. In C++ hatte ich das Problem nicht, da hab ich das Root-Object
zerstört und im Destructor die Childs. Kann ich in .NET nu schlecht... Muss
ich mir da keine Gedanken machen bei .NET bzgl. dieser Problematik?

Viele Grüsse&Danke
Sebastian
 

Lesen sie die antworten

#1 Gottfried Lesigang
08/05/2008 - 00:27 | Warnen spam
Hi Sebastian!

Ich hab eine Frage und zwar wie ist das wenn eine Klasse Childs hat
die wiederum eine Referenz auf Ihren Erzeuger besitzen. In VB6 damals
war das ein Problem da eine Objekt solange gelebt hat wie es Referenzen
darauf gab. In C++ hatte ich das Problem nicht, da hab ich das Root-Object
zerstört und im Destructor die Childs. Kann ich in .NET nu schlecht... Muss
ich mir da keine Gedanken machen bei .NET bzgl. dieser Problematik?



Nein, der GC verwaltet das intelligent. Er prüft ob es Referenzen gibt, die
vom Programm noch erreicht werden können. Du weißt halt nicht, wann genau
eine Instanz aufgelöst wird. Das kann beim Aufràumen von externen
Komponenten ein Problem sein. Dazu ggf.: IDisposable in Verbindung mit
"using{}"

Wenn dich dieses Thema interessiert, solltest du vielleicht auch einen
Blick auf WeakReferences werfen. Die können in manchen Szenarien (z.B.
zentraler Cache) sehr hilfreich sein.

HTH
Gottfried


Home: www.develes.net
Mail:

Ähnliche fragen