J'essaie de récupérer une fuite de mémoire dans une application Windows Forms. Je regarde maintenant un formulaire qui contient plusieurs formes incorporées. Ce qui m'inquiète, c'est que l'enfant forme, dans son constructeur, une référence au formulaire parent, et le garde dans un champ privé. Donc, il me semble que lorsque vient le temps de collecte des ordures:Les références circulaires entraînent-elles une fuite de mémoire?
Parent a une référence à la forme de l'enfant, par l'intermédiaire de la collection de contrôles (y est intégré sous forme de l'enfant). La forme enfant n'est pas GC'd.
forme d'enfant a une référence à la forme mère, par l'intermédiaire du champ de membre privé. Le formulaire parent n'est pas GC'd.
Est-ce une bonne compréhension de la façon dont le garbage collector évaluera la situation? Un moyen de le «prouver» à des fins de test?
Ou tout simplement allouer un tampon massif à l'intérieur de chaque forme. – Gusdor