我有一些简单的代码需要重现:
var taskTest = Task.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(5000);
}).ContinueWith((Task t) =>
{
Console.WriteLine("ERR");
}, TaskContinuationOptions.OnlyOnFaulted);
try
{
Task.WaitAll(taskTest);
}
catch (AggregateException ex)
{
foreach (var e in ex.InnerExceptions)
Console.WriteLine(e.Message + Environment.NewLine + e.StackTrace);
}
然而,在try catch块中抛出了意外的TaskCanceledException(它位于AggregateException InnerExceptions对象中)。"任务已取消"。
为什么会出现这个异常?任务的继续没有触发,也没有生成任何异常,但是在等待时仍然会收到聚合异常....
我希望有人可以解释这对我有什么意义 :)