Tengo una lista de arrays muy poblada, que quiero borrar y reutilizar. Si lo borro, ¿liberará la memoria usada anteriormente?.net ¿ArrayList.Clear libera memoria?
También debo mencionar que el arraylist es un campo privado de solo lectura de una clase que todavía tiene mucho trabajo activo que hacer después de usar el arraylist la primera vez. Así que no puedo esperar a la recolección de basura después de que la clase sale del alcance.
¿El método Clear es lo suficientemente rápido? ¿O debería destruir y crear un nuevo arraylist?
actualizaciónPregunta:
Si tengo ámbito declarado como esto (gracias a los consejos de Jon)
/// <summary>
/// Collection of tasks.
/// </summary>
private List<Task> tasks = new List<Task>();
entonces pueblan .... (en gran medida)
Ahora bien, si en lugar de despejándolo y recortándolo, ¿puedo simplemente llamar a:
tasks = new List<Task>();
¿Esto sería recomendable?
+1 para Jon, ya que está cubierto realmente. Sin embargo, Clear no liberará realmente la memoria de todos modos, solo el Garbage Collector lo hace. Los objetos IDisposibles correctamente escritos también liberan memoria no administrada en su implementación de Dispose - si corresponde. Tal vez solo estoy siendo pedante aunque :) –
Buen punto Andras, pero creo que es suficiente tener esa memoria lista para la recolección de basura. –