Estoy creando muchos controles personalizados y los estoy agregando a un FlowLayoutPanel. También hay un ContextMenuStrip creado y poblado en el momento del diseño.Fuga de memoria con ContextMenuStrip
Cada vez que se agrega un control al panel, tiene su propiedad ContextMenuStrip asignada a este menú, de modo que todos los controles "comparten" el mismo menú. Pero noté que cuando los controles se quitan del panel y se eliminan, la memoria en uso en el Administrador de tareas no se cae. Se eleva alrededor de 50kB cada vez que se crea un control y se agrega al panel de diseño.
Descargué la versión de prueba de .NET Memory Profiler y mostró que había referencias a la tira del menú que colgaba después de que los controles fueron eliminados. Cambié el código para establecer explícitamente la propiedad ContextMenuStrip en null antes de deshacerme del control, y sí, ahora la memoria se ha liberado. ¿Por qué es esto? ¿No debería el GC limpiar este tipo de cosas?
http://connect.microsoft.com/VisualStudio/feedback/details/116059/contextmenustrip-memory-leak – CharithJ