Nimmt sich Ich habe 2 Objekte - Objekt A und Objekt B Objekt A Objektreferenzen B und Objekt B Referenzen A. AUFGABEGarbage collection mit kreisförmigem referenzierte Objekt
- Wenn sowohl ein & Objekt B Objekt ist aus Verweis auf den Code - wie Garbage Collector weiß, dass es gesammelt werden kann.
- Wie leitet der Garbage Collector ab, dass ein Objekt außerhalb des Geltungsbereichs/bereit für die Garbage Collection ist?
- Was ist, wenn Objekt A nicht durch unseren Code ref, aber immer noch unabhängig sein kann. Z.B. Wenn es sich um eine Form-Klasse handelt, kann sie eigenständig ausgeführt werden, selbst wenn Objekt A auf eine neue Instanz oder Null zurückgesetzt wird.
Sie sollten dies lesen: http://msdn.microsoft.com/en-us/library/ee787088.aspx Es beantwortet Ihre Fragen und mehr. (Grob: Der GC hat eine Liste von Dingen, von denen er weiß, dass sie lebendig sind (statische Referenzen, Stapelvariablen, etc.), die "Wurzeln" sind. Jedes andere Objekt, das durch das Verfolgen von Referenzen an diesen Wurzeln erreicht werden kann, wird ebenfalls als lebendig betrachtet Objekt, das * kann nicht * gilt für die Sammlung.) – dlev
Ich habe Ihren Titel bearbeitet. Bitte lesen Sie "[Sollten die Fragen" Tags "in ihren Titeln enthalten?] (Http://meta.stackexchange.com/questions/19190/)", wobei der Konsens "nein, sie sollten nicht" lautet. –
Wenn Sie an solchen Sachen interessiert sind, ist das absolut beste Buch (IMO) [CLR Via C#] (http://www.amazon.co.uk/CLR-Via-Edition-Entwickler-Referenz/dp/0735667454/ref = dp_ob_title_bk) (das ist in seiner 4. Ausgabe und hat einen neu aktualisierten Abschnitt über den Garbage Collector). Ich kann es nicht genug empfehlen. Es erklärt wirklich sehr gut, was gerade in der CLR passiert. –