irkuläre Verweise verursachen Speicherverlus

Ich versuche, einen Speicherverlust in einer Windows Forms-Anwendung zu beheben. Ich schaue jetzt auf ein Formular, das mehrere eingebettete Formulare enthält. Was mich beunruhigt, ist, dass die untergeordneten Formulare in ihrem Konstruktor einen Verweis auf das übergeordnete Formular verwenden und es in einem privaten Mitgliedsfeld aufbewahren. So scheint es mir, dass Müllsammelzeit kommt:

Parent hat über die Controls-Auflistung einen Verweis auf das untergeordnete Formular (das untergeordnete Formular ist dort eingebettet). Untergeordnetes Formular wird nicht gcd.

Child-Formular enthält über das Feld für private Mitglieder einen Verweis auf das übergeordnete Formular. Das übergeordnete Formular ist nicht GC'd.

Ist dies ein genaues Verständnis dafür, wie der Garbage Collector die Situation einschätzt? Gibt es eine Möglichkeit, dies zu Testzwecken zu beweisen?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage