C sharp - Ayuda por favor!!!...Memoriaaaa!!!

 
Vista:

Ayuda por favor!!!...Memoriaaaa!!!

Publicado por Emiliano (43 intervenciones) el 21/03/2007 15:42:57
Hola a todos!!!. Tengo una aplicación para una PDA utilizando el compact framework y lo que sucede es que dicha aplicacion tiene varios formularios pero cuando los abro y los cierro estos no liberan los recursos que utilizan.
Por ejemplo, al abrir uno de los formularios, este consume el 5% de la memoria, al cerrarlo no libera ese 5%...lo espero dado que sé que el GC no corre cuando yo quiero sino cuando a él se le antoja, pero pasan los minutos y nunca libera ese 5%. Si vuelvo a abrir dicho formulario se lleva otro 5% de la memoria y asi es siempre!...Me pueden ayudar???...necesito una pista de como atacar este problema!

Muchisimas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:Ayuda por favor!!!...Memoriaaaa!!!

Publicado por Yamil Bracho (1164 intervenciones) el 22/03/2007 13:07:39
Mientras el objeto tenga una referencia "viva" el GC no lo eliminara de memoria.
Revisa en tu codigo si estas solo escodiendo el formulario o efectivamente estas haciendo el Close respectivo. Si esta sllamando dichos formularios desde un menu, el proceso en general seria:

Formulario frm = new Formulario();
frm.ShowDialog();
frm = null:

En la ultima instruccion estas marcando el objeto para que el GC lo elimine en la primera pasada que pueda hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda por favor!!!...Memoriaaaa!!!

Publicado por Emiliano (43 intervenciones) el 22/03/2007 16:48:04
Estimado Yamil, muchisimas gracias por tu respuesta!. En mi codigo, cuando llamo a los formularios el código es muy similar al que tú me indicas, es así:

Formulario frm = new Formulario();
frm.ShowDialog();
frm.Dispose();
frm = null;

Es correcta esa llamada a Dispose() ??. Si es correcta, tampoco se observa que al cerrar el formulario devuelva dicha memoria o una parte de ella!...quizas el GC pasa cada X intervalos de minutos, pero eh estado esperando varios minutos y nada!...Alguna otra idea que pueda ayudarme???

Slds y gracias nuevamente!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:Ayuda por favor!!!...Memoriaaaa!!!

Publicado por Yamil Bracho (1164 intervenciones) el 22/03/2007 21:24:07
Tal y como lo estas haciendo deberia estar bien aunque pudieras probar quitenado el Dispose() para ver como va...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar