Wann wird AppDomain.ProcessExit nicht aufgerufen?

Aktivierungsleitung//1 Im folgenden Beispiel stürzt das Programm ab, ohne dass "proc exit" gedruckt wird, jedoch im Falle einer Zeile//2wird "proc exit" gedruckt. "unhandled" wird übrigens in beiden Fällen gedruckt.

Woher kommt der Unterschied und wie lauten die Regeln im Allgemeinen? Offensichtlich eine App mit z. Der Task-Manager verhindert, dass "proc exit" gedruckt wird. In welchen Fällen wird es jedoch nicht gedruckt?

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;

Antworten auf die Frage(2)

Ihre Antwort auf die Frage