Quelle est la différence entre OperationCanceledException
et TaskCanceledException
? Si j’utilise .NET 4.5 et que async
mots-clés async
/ d’ await
, lequel dois-je rechercher?
OperationCanceledException
est simplement la classe de base pour TaskCanceledException
– donc, si vous attrapez le premier, vous attraperez toujours le dernier.
Certaines opérations sur des collections simultanées ne provoquent que OperationCanceledException
, car il n’y a aucune tâche réelle impliquée (du moins en ce qui concerne l’API publique). Voir BlockingCollection.TryTake
pour un exemple.
J’accepterais l’ OperationCanceledException
juste au cas où la tâche serait annulée à cause d’une opération qui, elle-même, ne faisait que lancer OperationCanceledException
– vous souhaitiez probablement toujours traiter cela comme “juste une annulation”.