阅读量:0
在C#中,可以通过捕获线程的未处理异常来处理线程异常。以下是一种实现方式:
- 在线程方法中使用try-catch块捕获异常,并将其存储在一个全局变量中:
static Exception threadException = null; static void ThreadMethod() { try { // 线程方法代码 } catch (Exception ex) { threadException = ex; } }
- 在主线程中启动子线程,并等待子线程完成:
Thread thread = new Thread(ThreadMethod); thread.Start(); thread.Join();
- 在主线程中检查全局变量中是否有线程异常,并处理它:
if (threadException != null) { // 处理线程异常 Console.WriteLine($"Thread exception: {threadException.Message}"); }
通过这种方式,可以在C#中捕获线程异常并进行处理。需要注意的是,全局变量threadException需要进行适当的线程同步,以避免并发访问导致的问题。