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//2
wird "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;