Я полностью озадачен. Я был так уверен, что .NET закрывает весь домен приложения, если в потоке есть неперехваченное исключение, которое я никогда не тестировал.
Однако я просто попробовал следующий код, и он не подводит... Может ли кто-нибудь объяснить, почему?
(Пробовал в .NET 4 и 3.5)
static void Main(string[] args)
{
Console.WriteLine("Main thread {0}", Thread.CurrentThread.ManagedThreadId);
Action a = new Action(() =>
{
Console.WriteLine("Background thread {0}", Thread.CurrentThread.ManagedThreadId);
throw new ApplicationException("test exception");
});
a.BeginInvoke(null, null);
Console.ReadLine();
}