Capítulo 12. Eliminación y recogida de basuras

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Algunos objetos requieren un código de desmontaje explícito para liberar recursos como archivos abiertos, bloqueos, manejadores del sistema operativo y objetos no gestionados. En el lenguaje .NET, esto se denomina eliminación, y se realiza a través de la interfaz IDisposable. La memoria gestionada ocupada por objetos no utilizados también debe recuperarse en algún momento; esta función se conoce como recogida de basura y la realiza el CLR.

La eliminación se diferencia de la recogida de basura en que la eliminación suele instigarse explícitamente; la recogida de basura es totalmente automática. En otras palabras, el programador se encarga de cosas como liberar manejadores de archivo, bloqueos y recursos del sistema operativo, mientras que el CLR se encarga de liberar memoria.

Este capítulo trata tanto de la eliminación como de la recogida de basura, y también describe los finalizadores de C# y el patrón mediante el cual pueden proporcionar un respaldo a la eliminación. Por último, tratamos los entresijos del recolector de basura y otras opciones de gestión de memoria.

IDesechable, Desechar y Cerrar

.NET define una interfaz especial para los tipos que requieren un método de desmontaje:

public interface IDisposable
{
  void Dispose();
}

La sentencia using de C# proporciona un atajo sintáctico para llamar a Dispose en objetos ...

Get C# 12 en pocas palabras now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.