第7章多线程与异常处理 张思民
- 格式:ppt
- 大小:260.50 KB
- 文档页数:33
多线程(7)多线程中的异常处理 多线程使⽤过程中,除了线程同步的问题要考虑外,异常处理也是经常要⾯对的事情。
如下代码:1namespace ConsoleApplication292 {3class Program4 {5static void Main(string[] args)6 {7//异步线程的异常处理8try9 {10 Task.Factory.StartNew(() =>11 {12throw new Exception("异步线和发⽣异常了!");13 });14 }15catch (Exception ex)16 {17//这⾥是捕获不到的18 Console.WriteLine(ex.ToString());19 }2021 Console.ReadKey();22 }23 }24 }View Code常⽤的异常处理⽅法1,在异步线程内部使⽤try/catch如下代码:1namespace ConsoleApplication292 {3class Program4 {5static void Main(string[] args)6 {7//异步线程的异常处理8//1,在异步线程内部使⽤try/catch9 Task.Factory.StartNew(() =>10 {11try12 {13throw new Exception("异步线和发⽣异常了!");14 }15catch (Exception ex)16 {17 Console.WriteLine(ex.ToString());18 }19 });2021 Console.ReadKey();22 }23 }24 }View Code运⾏结果:2,调⽤Task的Wait⽅法如下代码:注意:除了调⽤Task的Wait⽅法后,在主线程可以捕获异常外,对于有返回值的Task,只要接收了它的返回值就不再需要调⽤Wait⽅法了。