GC.Collect () nie zbiera natychmiast?

W trakcie dyskusji na czacie napisałem tę aplikację konsoli.

Kod:
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();
    }
}
Wynik:
Collecting... Done

Unhandled Exception: System.Exception: Exception of type 'System.Exception' was
thrown.
   at SomeClass.Finalize()

Spodziewałbym się, że aplikacja ulegnie awariiprzed Done został wydrukowany.

Nie obchodzi mnie, jak to zrobić. Moje pytanie brzmi,dlaczego tego nie robi?

questionAnswers(4)

yourAnswerToTheQuestion