我知道在使用
我也知道异步线程(例如
但我不明白的是为什么这不会导致进程崩溃?
Task
时如何处理未处理的异常,只有在用户代码没有“观察”它之前才会在终结器中抛出未处理的异常。我也知道异步线程(例如
Action.BeginInvoke()
)中的未处理异常是如何在加入调用(例如Action.EndInvoke()
)上捕获并重新抛出的。但我不明白的是为什么这不会导致进程崩溃?
static void Main(string[] args)
{
var timer = new System.Timers.Timer() {Interval = 100};
timer.Elapsed += (o, e) => { throw new Exception(); };
timer.Start();
Console.ReadKey( true );
}