Когда AppDomain.ProcessExit не будет вызван?
Включающая линия//1
ниже сделает сбой программы без "Proc выход " печатается, но в случае строки "//2
Proc выход " будет напечатан. "необработанное» Кстати, печатается в обоих случаях.
Почему разница, и каковы правила в целом? Очевидно, убивая приложение, например, с помощью диспетчер задач помешаетProc выход " от печати, но кроме этого, в каких случаях это не 'печатать?
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;