Когда AppDomain.ProcessExit не будет вызван?

Включающая линия//1 ниже приведёт к аварийному завершению программы без вывода «proc exit», но в случае строки//2, "выход из процесса" будет напечатан. «необработанный» кстати печатается в обоих случаях.

Почему разница, и каковы правила в целом? Очевидно, убивая приложение, например, с помощью диспетчер задач предотвратит печать «выхода из процесса», но кроме этого, в каких случаях он не печатается?

static void Main(string[] args)
{
    Thread.GetDomain().UnhandledException +=
        (sender, eventArgs) => Console.WriteLine("unhandled");
    AppDomain.CurrentDomain.ProcessExit +=
        (sender, eventArgs) => Console.WriteLine("proc exit");
    //1 new Thread(_ => { throw new Exception(); }).Start();
    //2 ThreadPool.QueueUserWorkItem(_ => { throw new Exception(); });
    Thread.Sleep(1000);
    return;

Ответы на вопрос(2)

Ваш ответ на вопрос