异常处理
文章平均质量分 83
White_Hacker
这个作者很懒,什么都没留下…
展开
-
【C#】47. Task 的异常处理
就像在讨论线程的时候我们说过,要在线程调用的函数里面做try catch处理,如果在其他线程中使用try catch是无法正常捕获异常。Task也一样,基本原理就是一个线程没办法捕获另一个线程的异常。static int TaskMethod(string name, int seconds){Console.WriteLine("Task {0} 运行在线程 {1} 上。是否是线程池线程原创 2016-12-12 10:34:49 · 9464 阅读 · 0 评论 -
【C#】50.使用await操作连续的异步任务
本篇主要说明一下使用await处理连续异步任务后,程序的条理会变得较为清晰。async static Task GetInfoAsync(string name){Console.WriteLine("Task {0} started!", name);await Task.Delay(2000);if(name == "Async 2")throw new Exceptio原创 2016-12-12 21:13:55 · 3621 阅读 · 0 评论 -
【C#】52. 使用Flatten方法处理并行任务抛出的异常
本篇主要讨论一下InnerException的处理方法flatten。async static Task GetInfoAsync(string name, int seconds){await Task.Delay(TimeSpan.FromSeconds(seconds));throw new Exception(string.Format("Boom from {0}!", nam翻译 2016-12-12 22:20:23 · 1172 阅读 · 0 评论 -
【C#】61. 并行查询的异常处理 PLINQ Exception
本文主要是要说明PLINQ中如果发生了异常(除取消任务以外的异常),那么将会返回一个aggregateexception(因为所有并行查询中发生的异常都会被抛出),需要对其中的innerexception进行进一步处理。首先来看普通Linq查询中发生的异常:由于是顺序执行查询,因此当碰到了对应的第一个异常时便自动捕获,也无须考虑线程的问题,因为是在同一个线程中。IEnumerabl转载 2016-12-13 14:06:58 · 1155 阅读 · 0 评论