Dlaczego wyjątki AppDomain niezmiennie kończą aplikację?

Jest to związane z apoprzednie pytanie.

Próbuję teraz zrozumieć, jak można zapobiec wyłączaniu aplikacji przez wyjątki wątków interfejsu użytkownika, podczas gdy wyjątki inne niż UI nie mogą być.

Dla odniesienia patrzten przykład.

Co najważniejsze, w tym przypadku chciałbym móc „cicho” zakończyć proces - bez wyświetlania okna dialogowego Windows z pytaniem, czy chcę wysłać raport o błędzie, czy nie.

To moja aplikacja AppDomain UnhandledExceptionHandler:

private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{            
    try
    {
        // Maybe do some logging here if allowed
    }
    catch
    {
    }

    // then just terminate the application
    Application.Exit();            
}

AKTUALIZACJA
W świetle komentarzy wta odpowiedź, Chciałbym wyjaśnić, że co najważniejsze chciałbym dowiedzieć się więcej o mechanizmie, który umożliwia wątkowi interfejsu użytkownika wczesne wyłapywanie nieobsłużonych wyjątków za pośrednictwemApplication.ThreadException mechanizm. I czy takie zachowanie może być zaimplementowane w wątku innym niż UI.