处理Task引发的异常

处理方法:线程启动后,使用try-catch,通过wait或者waitall来捕获异常。

单个Task的情况:

System.Threading.Tasks.Task task1 = new System.Threading.Tasks.Task(TaskMethod);
task1.Start();
try
{
    task1.Wait();
}
catch(AggregateException ae)
{
    Console.WriteLine("task1 异常");
}

多个Task的情况:

       System.Threading.Tasks.Task[] tasks = new System.Threading.Tasks.Task[3];
            tasks[1] = new System.Threading.Tasks.Task(TaskMethod);
            tasks[1].Start();
            tasks[2] = new System.Threading.Tasks.Task(TaskMethod);
            tasks[2].Start();
            tasks[3] = new System.Threading.Tasks.Task(TaskMethod);
            tasks[3].Start();
            try
            {
                System.Threading.Tasks.Task.WaitAll(tasks);
            }
            catch(AggregateException ex)
            {
                foreach (var exception in ex.InnerExceptions)
                {
                    Console.WriteLine(exception.ToString());
                }
            }
        public static void TaskMethod()
        {
            //
        }            
原文地址:https://www.cnblogs.com/dayang12525/p/8205313.html