我写了这个代码片段:
static void Main(string[] args)
{
Console.WriteLine("Start");
Thread secondThread = new Thread(ThrowAnException);
secondThread.Start();
Console.ReadKey();
}
static void ThrowAnException()
{
throw new Exception("Second Thread Exception");
}
}
我的理解是,当第二个线程发生异常时,异常会沿线程堆栈向下移动,如果未处理,则子线程会静默终止。我看到的是线程正在中断主线程并以“异常未处理”中断 ThrowAnException 方法。
我在调试和不调试的情况下都运行了它,并且行为是相同的。
任何想法我做错了什么?