none
C# Borrar paneles RRS feed

  • Pregunta

  • Hola,

    Estoy escribiendo un programa en c#, en el que creo un flowlayoutpanel que contiene un montón de paneles.
    También tengo un botón, y cuando el usuario hace click en él, quiero que se borren todos los paneles creados.
    Este es el código:


    Code Snippet

    foreach (Control c in miFlowLayotPanel.Controls)
    {
        ((Panel)c).Dispose();

    }


    Pero cuando miro el uso de memoria en el administrador de tareas, veo que no baja.
    También he intentado llamar al garbage collector

    Code Snippet

    GC.Collect();


    pero no noto ninguna diferencia.

    ¿Alguien sabe cómo puedo conseguir que se borren los paneles, y en tiempo razonable?

    Gracias
    miércoles, 23 de abril de 2008 8:10

Respuestas

  • Es lo hermoso del colector de basura y la memoria administrada: no hay control sobre la memoria. Je, se extraña C++...

    En fin, probablemente tengas entonces un memory leak o fuga de memoria. Revisa las referencias que tengas a los paneles y asegúrate de que el método Dispose de la ventana se deshaga de esas.
    jueves, 8 de mayo de 2008 18:51

Todas las respuestas

  • Hola ania

     

    Piensa que si mantienes alguna referencia a esos paneles aunque los hayas eliminado del flowlayoutpanel, cuando llames a GC.Collect() el recolector de basura se dará cuenta de que estos paneles aun estan referenciados por algun objeto y no los eliminará

     

    sábado, 26 de abril de 2008 12:00

  • Hola,
    he puesto como visible la columna 'User objects' del administrador de tareas, y el número de objetos baja cuando se ejecuta el código de arriba, así que supongo que el dispose hace bien su trabajo.
    Gracias
    martes, 29 de abril de 2008 8:23
  • Es lo hermoso del colector de basura y la memoria administrada: no hay control sobre la memoria. Je, se extraña C++...

    En fin, probablemente tengas entonces un memory leak o fuga de memoria. Revisa las referencias que tengas a los paneles y asegúrate de que el método Dispose de la ventana se deshaga de esas.
    jueves, 8 de mayo de 2008 18:51