Ich versuche, ein Speicherleck in einer Windows Forms-Anwendung herunterzufahren. Ich schaue jetzt auf ein Formular, das mehrere eingebettete Formulare enthält. Was mich beunruhigt, ist, dass das Kind in seinem Konstruktor einen Verweis auf das Elternformular erstellt und es in einem privaten Mitgliederfeld hält. So scheint es mir, dass kommen Müll-Sammlung Zeit:Kreisreferenzen Ursache Speicherleck?
Parent hat einen Verweis auf das untergeordnete Formular, über die Steuerelemente Sammlung (Kind Formular ist dort eingebettet). Kinderform ist nicht GC'd.
Untergeordnetes Formular hat einen Verweis auf das übergeordnete Formular über das Feld für private Mitglieder. Elternformular ist nicht GC'd.
Ist das ein genaues Verständnis davon, wie der Müllsammler die Situation bewerten wird? Irgendeine Möglichkeit, es zu Testzwecken zu "beweisen"?
Oder einfach einen massiven Puffer in jedem Formular zuweisen. – Gusdor