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# 10 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.