J'ai un code simple comme une repro:
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);
}
Cependant, je suis un inattendu TaskCanceledException être levée dans le bloc try catch (c'est dans la AggregateException InnerExceptions objet). "Une tâche a été annulée".
Pourquoi ai-je cette exception? La Poursuite de la tâche se déclenche jamais, il n'y a aucune exception générée par elle, mais j'ai toujours l'agrégation d'exception lors de l'attente....
J'espère que quelqu'un peut expliquer comment tout cela fait sens pour moi :)