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, describiendo también 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 Core 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 ...

Get C# 8.0 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.