Garbage collector: El CLR proporciona un sistema automático de administración de memoria denominado recolector de basura (garbage collector). El CLR detecta cuándo el programa deja de utilizar la memoria y la libera automáticamente. De esta forma el programador no tiene por que liberar la memoria de forma explícita aunque también sea posible hacerlo manualmente (mediante el método disponse() liberamos el objeto para que el recolector de basura lo elimine de memoria).
umm.CitarGarbage collector: El CLR proporciona un sistema automático de administración de memoria denominado recolector de basura (garbage collector). El CLR detecta cuándo el programa deja de utilizar la memoria y la libera automáticamente. De esta forma el programador no tiene por que liberar la memoria de forma explícita aunque también sea posible hacerlo manualmente (mediante el método disponse() liberamos el objeto para que el recolector de basura lo elimine de memoria). BYTE.
Hola amigos, se me vino esta interrogante despues de ver varios ejemplos distintos en como borrar un objeto, y quisiera saber como se borra un objeto de la memoria, io utilizo objeto como SqlConecction, SqlCommand, SqlDataAdpater, DataSet, DataTable y quisiera eliminarlos de la memoria cuando ia no los necesite, io lo hago asi:Código: TextObjeto = Nothing Pero veo en ejemplo que lo hacen asi:Código: TextObjeto.Dispose Me dicen que para utilizar Dispose hay que crear un metodo, pero io no he creado clases solo utilizo las de .Net Frameword, toy un poco confundido pero como elimiar de la memoria esos objetos???? de antemano muchas gracias nos vemos
Cita de: "Cajami" Hola amigos, se me vino esta interrogante despues de ver varios ejemplos distintos en como borrar un objeto, y quisiera saber como se borra un objeto de la memoria, io utilizo objeto como SqlConecction, SqlCommand, SqlDataAdpater, DataSet, DataTable y quisiera eliminarlos de la memoria cuando ia no los necesite, io lo hago asi:Código: TextObjeto = Nothing Pero veo en ejemplo que lo hacen asi:Código: TextObjeto.Dispose Me dicen que para utilizar Dispose hay que crear un metodo, pero io no he creado clases solo utilizo las de .Net Frameword, toy un poco confundido pero como elimiar de la memoria esos objetos???? de antemano muchas gracias nos vemos Para usar Dispose debes implementar la interfaz IDIsposable, epro eso solo aplica para objetos que contienen elementos ( o sea mas objetos) pero estos no están en la memoria administrada, es decir Dispose solo se usa para liberar los recursos no administrados.No hay manera de obligar al garbage colecetor a liberar un objeto cargado en memoria, pero si se puede dejar un objeto como candidato para ser liberado, para ello hay que cumplir solo un requisito fundamental.Liberar cualquier referencia al objeto, es decir asignar null.si un objeto tiene al menos una referencia nunca sera liberado.Aca el objeto puede ser liberado:TextBox t= new TextBox();t=null;Aca el objeto no sera liberado:TextBox t= new TextBox();FormaCorreo.CorTextBox = t;t=null;pues FormaCorreo.CorTextBox aun tiene una referencia al objeto.Una vez ya no hay referencias al objeto el GC puede determinar si leberarlo o no de acuerdo a los recursos consumidos actualmtente en memoria, a la memoria disponible, a la intensidad de proceso, a la encesidad de espacio en memoria etc... pero no hay forma de forzarlo, lo mas cercano es llamando a GC.Collectpero esto solo hara una revision para ver que memoria liberar pero no lo obliga a liberarla.