Como forçar o coletor de lixo a ser executado?

Entrevistador me perguntou sobre isso hoje … há uma resposta?

System.GC.Collect() força o coletor de lixo a ser executado. Isso não é recomendado, mas pode ser usado se surgirem situações.

Não é recomendado chamar o gc explicitamente, mas se você ligar

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

Ele irá chamar GC explicitamente em todo o seu código, não esqueça de chamar GC.WaitForPendingFinalizers(); após GC.Collect() .

 GC.Collect() 

da MDSN ,

Use este método para tentar recuperar toda a memory inacessível.

Todos os objects, independentemente de quanto tempo eles estão na memory, são considerados para coleta; no entanto, objects referenciados no código gerenciado não são coletados. Use este método para forçar o sistema a tentar recuperar a quantidade máxima de memory disponível.

GC.Collect()

GC.Collect();

Tenha em mente, porém, que o Garbage Collector nem sempre limpa o que você espera …

Você não deseja forçar o coletor de lixo a ser executado.

No entanto, se você já fez (como um exercício puramente acadêmico, claro):

 GC.Collect() 

Eu acho que .Net Framework faz isso automaticamente, mas apenas no caso. Primeiro, certifique-se de selecionar o que deseja apagar e, em seguida, chame o coletor de lixo:

 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(); 

Eu acho que é isso .. Espero ajudar alguém.