This artículo dice¿Por qué las clases con finalizadores necesitan más de un ciclo de recolección de basura?
Si un objeto tiene un finalizador, no se elimina inmediatamente cuando el recolector de basura decide que ya no es ‘en vivo’. En cambio, se convierte en un tipo especial de raíz hasta que .NET ha llamado al método del finalizador. Esto significa que estos objetos generalmente requieren más de una recolección de basura para ser eliminados de la memoria, ya que sobrevivirán al primer tiempo que no se usen.
Mi pregunta es por qué GC no llama al finalizador cuando descubre que el objeto ya no se puede referenciar y recoge el objeto de inmediato? ¿Por qué necesita más que en la recolección de basura?