Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/01/2006, 01:34
zaqpz
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 19 años, 7 meses
Puntos: 2
Pregunta Como limpiar de la memoria los "recursos administrados"

Hola chic@s. Últimamente estuve leyendo unos cuantos artículos que tratan de "como limpiar de la memoria los recursos NO administrados", en los cuales se hace incapié en utilizar el método Dispose() para aquellos objetos que encapsulen recursos no administrados.
Ahora mi problema está en que también quisiera liberar objetos que NO son IDisposable como también variables que pueda llegar a utilizar.
Posiblemente no me esté explicando correctamente, por lo que les dejo un ejemplo marcando en rojo donde esta mi problema:

Código:
public class clasePrueba: IDisposable
{
	// Creo el recurso NO administrado
	private Component miComponent;
	// Creo el recurso administrado
	private DataSet dSet;
	public int variable;
	
	private bool disposed=false;
	
	public BaseResource() { /* ... */ }
	
	public void Dispose()
	{	
		Dispose(true);	GC.SuppressFinalize(this);
	}
	protected virtual void Dispose(bool disposing)
	{
		if(!this.disposed)
		{
			if(disposing)
			{
            	// Libero recursos administrados
             ¿Como hago para liberar al objeto dSet y a la variable que declaré?

			}
			// Aca libero los recursos NO administrados con un simple Dispose()
			miComponent.Dispose();
		}
		disposed=true;         
	}
	~BaseResource() { Dispose(false); }
}
Tengo entendido que el recolector de basura tarde o temprano elimina los recursos administrados, pero ya que implemento tantos metodos para tratar este problema, me gustaría también poder liberar los objetos que no cumplen con la interfaz IDiposable.

Espero haberme dado a entender.

Se les agradece de antemano cualquier ayuda. Saludos!
__________________
R4DS en español | R4DS en inglés