Sobre GC y destructor

22/02/2008 - 23:17 por Cecilia | Informe spam
He leido este articulo de este curso

http://www.elguille.info/NET/cursoC...trega7.htm


Pero la verdad no me queda claro el tema. Hay o no que preocuparse por la
recoleccion de basura manual en C# ?

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
23/02/2008 - 10:18 | Informe spam
"Cecilia" wrote in message
news:%
He leido este articulo de este curso

http://www.elguille.info/NET/cursoC...trega7.htm


Pero la verdad no me queda claro el tema. Hay o no que preocuparse por
la recoleccion de basura manual en C# ?



Solo hay que preocuparse si usas recursos no-gestionados.

Mientras uses recursos gestionados, es decir, que ya han sido
encapsulados en una clase de .Net debidamente programada, tu única
preocupación debe ser llamar al Dispose de cada objeto que implemente
IDisposable.

En cambio, si programas alguna clase que use P/Invoke o Interop para
asignar recursos externos que deban ser liberados al destruir el objeto
correspondiente, debes implementar IDisposable para que los llamantes de tu
clase puedan iniciar dicha liberación, además de añadir un finalizador en
previsión de que a alguien se le olvide llamar a tu Dispose.
Respuesta Responder a este mensaje
#2 Jesús López
23/02/2008 - 10:35 | Informe spam
Hay o no que preocuparse por la recoleccion de basura manual en C# ?



Pues en el 99.9 % de los casos no deberías llamar a CG.Collect().

Por otra parte deberías utilizar using con objetos que implementan
IDisposable, para que se llame a Dispose. Por ejemplo:

using (SqlConnection cn = New SqlConnection)
using (SqlCommand cmd = New SqlCommand(.., cn)
{


}

Saludos:

Jesús López
www.soldiq.com


"Cecilia" escribió en el mensaje
news:%
He leido este articulo de este curso

http://www.elguille.info/NET/cursoC...trega7.htm


Pero la verdad no me queda claro el tema. Hay o no que preocuparse por
la recoleccion de basura manual en C# ?

Respuesta Responder a este mensaje
#3 Harvey Triana
23/02/2008 - 17:02 | Informe spam
En general, no. Aunque hay que tener precauciones, por ejemplo una clase que
habrá una conexión a datos, debería tener un método Close() para cerrarla
con seguridad,

<Harvey Triana />
"No hay ninguna razón para escoger VB.NET sobre C#": Bruce Mckinney

"Cecilia" escribió en el mensaje
news:%
He leido este articulo de este curso

http://www.elguille.info/NET/cursoC...trega7.htm


Pero la verdad no me queda claro el tema. Hay o no que preocuparse por
la recoleccion de basura manual en C# ?

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