GC.Collect () não coletando imediatamente?
No decorrer de uma discussão no chat, eu escrevi este aplicativo de console.
Código:using System;
class Program
{
static void Main(string[] args)
{
CreateClass();
Console.Write("Collecting... ");
GC.Collect();
Console.WriteLine("Done");
}
static void CreateClass()
{
SomeClass c = new SomeClass();
}
}
class SomeClass
{
~SomeClass()
{
throw new Exception();
}
}
Resultado:Collecting... Done
Unhandled Exception: System.Exception: Exception of type 'System.Exception' was
thrown.
at SomeClass.Finalize()
Eu teria esperado que o aplicativo travasseantes Done
foi impresso.
Eu não me importo muito sobre como fazer isso. Minha pergunta é,porque não faz isso?