Garbagecollection Problem?

23/07/2008 - 10:17 von Juri | Report spam
Hallo zusammen,

ich habe eine Frage zum Verhalten des Garbage collectors.

In meiner Windows Forms Applikation leite ich von den Windows Forms Controls
ab, wie zum Beispiel einer Treenode.

Mit diesen Treenodes stelle ich ein Tree dar.
Nach dem, ich den Tree dargestellt habe, wird es irgendwann disposed, ich
sehe es, weil die Dispose Methode anspringt.

Komischerweise bleiben die Nodes aber noch im speicher und werden nicht
disposed.

Warum? gibt es dafür einen Grund? Selbst wenn ich die WinForms TreeNodes
nutze, bleiben diese im Speicher.

Generell merke ich, dass die Windows Forms Controls nicht immer Disposed
werden, so dass der Speicherverbrauch meiner Anwendung stetig ansteigt.

Kann das zu einem Problem führen oder springt der GC irgendwann mal an und
löscht die Controls?

Danke für die Antworten schon mal im Voraus.
 

Lesen sie die antworten

#1 Dirk3
31/07/2008 - 12:47 | Warnen spam
"Juri" wrote:

Hallo zusammen,

ich habe eine Frage zum Verhalten des Garbage collectors.

In meiner Windows Forms Applikation leite ich von den Windows Forms Controls
ab, wie zum Beispiel einer Treenode.

Mit diesen Treenodes stelle ich ein Tree dar.
Nach dem, ich den Tree dargestellt habe, wird es irgendwann disposed, ich
sehe es, weil die Dispose Methode anspringt.

Komischerweise bleiben die Nodes aber noch im speicher und werden nicht
disposed.

Warum? gibt es dafür einen Grund? Selbst wenn ich die WinForms TreeNodes
nutze, bleiben diese im Speicher.

Generell merke ich, dass die Windows Forms Controls nicht immer Disposed
werden, so dass der Speicherverbrauch meiner Anwendung stetig ansteigt.

Kann das zu einem Problem führen oder springt der GC irgendwann mal an und
löscht die Controls?

Danke für die Antworten schon mal im Voraus.



Hallo Juri,

Meines wissens nach werden Objekte nur zum "Löschen" gekennzeichnet. D.h.
sie werden in "Generationen" eingeteilt
(ms-help://MS.MSDNQTR.v90.en/dv_fxintro...18acba.htm).
Auf diese "Generationen" kann man unter Umstànden auch wieder zurückgreifen
(sind sozusagen untote Objekte.
ms-help://MS.MSDNQTR.v90.en/dv_fxadvan...e2d79b.htm).
Der GC làßt sich aber auch manuell anstoßen

Mfg
Dirk

Ähnliche fragen