Visual CSharp .NET - PROBLEMA CON FALTA DE MEMORIA

 
Vista:

PROBLEMA CON FALTA DE MEMORIA

Publicado por ifer (43 intervenciones) el 16/03/2005 20:40:53
hola, en una ocasion tenia una ventana constante en una aplicacion, en el cual debia ejecutarse un procedimiento muy largo pero que era llamado en ocasiones excepcionales, ponerlo en el mismo formulario parecia ideal, sin embargo al cargarlo ocurria que el limite
en la memoria virtual no abastecia (pues en VB cuando cargas un formulario, se carga todo el codigo, incluso aquel que nunca lo utilizaste), mi solucion fue llevar este procedimiento a una clase (.cls) la cual instanciaba -> ejecutaba -> y liberaba con MyObjeto = nothing, y estaba todo ok.

En C# me parece ridiculo crear una clase para que ejecute un solo procedimiento, mas aun cuando si al hacer MyObjeto = null, solo lo marca para el recolector, es decir no se libera la memoria de inmediato.
por que no aparece el metodo Dispose() en las clases para liberar la memoria?

La duda es que si colocara dentro de la clase del formulario, ocurriria lo mismo?

Otra duda: en VB, si tenias un modulo con varias funciones, solo era necesario que llames una funcion de estas para que carge en memoria todo el codigo de todas las funciones, y se quedan ahi hasta terminar la aplicacion.

si creo una clase con static public void MyProceso( ) ?
de manera que no sea necesario crear el objeto para llamar a la funcion, cuando y hasta cuando se mantiene el codigo en memoria? se carga el codigo de la funcion o de todo el codigo de la clase?
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

RE:PROBLEMA CON FALTA DE MEMORIA

Publicado por Edgar (82 intervenciones) el 17/03/2005 14:33:21
Hola

Bueno.. sobre el recolector de basura.. este se ejecuta cuando el mismo lo considera necesario.. si ve que hay mucha memoria por liberar, simplemente la libera.. no te preocupes por eso.. aunque parezca desde cierto punto ineficiente..

No se si al colocar la funcion dentro del formulario ocurriria lo mismo que en VB 6.. pero hasta donde yo se.. si llamas a una clase estática debe cargarse esta clase en memoria, debido a que una clase estática puede contener variables estáticas, las cuales se mantienen en memoria hasta que finaliza la aplicación... Esto ocurre mucho cuando creas una clase bajo el patron "Singleton" el cual te sirve para garantizar una unica instancia de un objeto para toda la aplicacion

Saludos
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