我有一个任务,它有两个ContinueWith。第一个用于处理任务成功完成的情况,第二个用于处理任务失败的情况。然后我等待它们中的任意一个完成。以下是示例代码:
var task = Task.Factory.StartNew(() => { Console.WriteLine("Task is finished"); });
var success = task.ContinueWith(
t => Console.WriteLine("Success")
, TaskContinuationOptions.OnlyOnRanToCompletion
);
var failed = task.ContinueWith(
t => Console.WriteLine("Failed")
, TaskContinuationOptions.NotOnRanToCompletion
);
try
{
Task.WaitAll(success, failed);
}
catch (AggregateException ex)
{
Console.WriteLine(ex.InnerException.Message);
}
我的问题是,是否可能对其进行重写以避免引发TaskCanceledException?