practices - c# private async void
¿Diferencia entre OperationCanceledException y TaskCanceledException? (1)
¿Cuál es la diferencia entre OperationCanceledException
y TaskCanceledException
? Si utilizo .NET 4.5 y uso las palabras clave async
/ await
, ¿cuál debería buscar?
OperationCanceledException
es simplemente la clase base para TaskCanceledException
, por lo que si atrapas la anterior, seguirás atrapando la última.
Algunas operaciones en colecciones concurrentes arrojan solo OperationCanceledException
, ya que no hay ninguna tarea real involucrada (al menos en lo que se refiere a la API pública). Consulte BlockingCollection.TryTake
para ver un ejemplo.
Capturaría la OperationCanceledException
solo en caso de que la tarea se cancele debido a una operación que acaba de lanzar OperationCanceledException
; probablemente aún quiera tratar eso como "cancelación justa".