Liberar recursos con Dispose

20/07/2005 - 09:13 por Ramon Barrena | Informe spam
Hola,

Ten un programa con un formulario form1 que llama al pulsar un botón a un
segundo formulario form2, en este form2 creo un objeto image con el cual
muestro cierta información. El problema que tengo es que cuando lleva unas
horas funcionando el programa empieza a ir mas lento, hay que salirse y
volver a ejecutarlo para que coja su velocidad normal.

Este problema debe ser que no se liberan bien los objetos que creo en el
form2 y se van acumulando en la memoria hasta hacer mas lento el equipo. En
el botón del form1 tengo el código siguiente:

Form2 miFormulario = new Form2();
miFormulario.ShowDialog();
miFormulario.Dispose();

Se supone que el dispose debe eliminar completamente todos los objetos
contenidos en el form2, no? debería utilizar otro método para liberar esa
memoria?

En el método close del form2 tengo puesto también miImage.Dispose() para
intentar liberar la memoria que ocupa el objeto image pero parece no
funcionar. Cual podría utilizar?

Gracias por vuestra ayuda.

Saludos,

Preguntas similare

Leer las respuestas

#1 Carlos Fouz
20/07/2005 - 12:43 | Informe spam
llamar a la GC ( garbage collector )


GC.Collect

Tambien existe un metodo que le indicas por el objeto que desea que empiece
la recoleccion

Saludos Carlos Fouz
www.canaldotnet.com

"Ramon Barrena" escribió:

Hola,

Ten un programa con un formulario form1 que llama al pulsar un botón a un
segundo formulario form2, en este form2 creo un objeto image con el cual
muestro cierta información. El problema que tengo es que cuando lleva unas
horas funcionando el programa empieza a ir mas lento, hay que salirse y
volver a ejecutarlo para que coja su velocidad normal.

Este problema debe ser que no se liberan bien los objetos que creo en el
form2 y se van acumulando en la memoria hasta hacer mas lento el equipo. En
el botón del form1 tengo el código siguiente:

Form2 miFormulario = new Form2();
miFormulario.ShowDialog();
miFormulario.Dispose();

Se supone que el dispose debe eliminar completamente todos los objetos
contenidos en el form2, no? debería utilizar otro método para liberar esa
memoria?

En el método close del form2 tengo puesto también miImage.Dispose() para
intentar liberar la memoria que ocupa el objeto image pero parece no
funcionar. Cual podría utilizar?

Gracias por vuestra ayuda.

Saludos,





Respuesta Responder a este mensaje
#2 Ramon Barrena
21/07/2005 - 10:02 | Informe spam
Gracias, voy a probar.

"Carlos Fouz" escribió en el mensaje
news:
llamar a la GC ( garbage collector )


GC.Collect

Tambien existe un metodo que le indicas por el objeto que desea que
empiece
la recoleccion

Saludos Carlos Fouz
www.canaldotnet.com

"Ramon Barrena" escribió:

Hola,

Ten un programa con un formulario form1 que llama al pulsar un botón a un
segundo formulario form2, en este form2 creo un objeto image con el cual
muestro cierta información. El problema que tengo es que cuando lleva
unas
horas funcionando el programa empieza a ir mas lento, hay que salirse y
volver a ejecutarlo para que coja su velocidad normal.

Este problema debe ser que no se liberan bien los objetos que creo en el
form2 y se van acumulando en la memoria hasta hacer mas lento el equipo.
En
el botón del form1 tengo el código siguiente:

Form2 miFormulario = new Form2();
miFormulario.ShowDialog();
miFormulario.Dispose();

Se supone que el dispose debe eliminar completamente todos los objetos
contenidos en el form2, no? debería utilizar otro método para liberar
esa
memoria?

En el método close del form2 tengo puesto también miImage.Dispose() para
intentar liberar la memoria que ocupa el objeto image pero parece no
funcionar. Cual podría utilizar?

Gracias por vuestra ayuda.

Saludos,





Respuesta Responder a este mensaje
#3 Alfredo Novoa
21/07/2005 - 19:43 | Informe spam
On Thu, 21 Jul 2005 10:02:20 +0200, "Ramon Barrena"
wrote:

Gracias, voy a probar.



No te va a servir. Tienes que liberar manualmente todos los recursos
no gestionados por la plataforma .Net

GC.Collect() solo lanza al recolector de basura. Si la recolección
automática no funciona esta tampoco va a funcionar.

Saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida