¿Cómo forzar al recolector de basura a correr?

El entrevistador me preguntó sobre esto hoy … ¿hay alguna respuesta?

System.GC.Collect() fuerza al recolector de elementos no utilizados a ejecutarse. Esto no es recomendable, pero se puede usar si surgen situaciones.

No se recomienda llamar a gc explícitamente, pero si llama

 GC.Collect(); GC.WaitForPendingFinalizers(); 

GC.WaitForPendingFinalizers(); GC explícitamente a través de su código, no olvide llamar a GC.WaitForPendingFinalizers(); después de GC.Collect() .

 GC.Collect() 

de MDSN ,

Use este método para tratar de reclamar toda la memoria que es inaccesible.

Todos los objetos, independientemente de cuánto tiempo hayan estado en la memoria, se tienen en cuenta para la recostackción; sin embargo, los objetos a los que se hace referencia en el código administrado no se recostackn. Use este método para obligar al sistema a tratar de reclamar la cantidad máxima de memoria disponible.

GC.Collect()

GC.Collect();

Tenga en cuenta, sin embargo, que el recolector de basura no siempre puede limpiar lo que espera …

No quieres forzar al recolector de basura a ejecutar.

Sin embargo, si alguna vez lo hizo (como un ejercicio puramente académico, por supuesto):

 GC.Collect() 

Creo que .Net Framework hace esto automáticamente, pero por las dudas. Primero, asegúrese de seleccionar lo que desea borrar y luego llame al recolector de basura:

 randomClass object1 = new randomClass ... ... // Give a null value to the code you want to delete object1 = null; // Then call the garbage collector to erase what you gave the null value GC.Collect(); 

Creo que es eso … Espero ayudar a alguien.