What is the difference between OperationCanceledException
and TaskCanceledException
? If I am using .NET 4.5 and using the async
/
OperationCanceledException is simply the base class for TaskCanceledException - so if you catch the former, you'll still catch the latter.
Some operations on concurrent collections throw just OperationCanceledException
, as there aren't any actual tasks involved (at least as far as the public API is concerned). See BlockingCollection.TryTake for an example.
I would catch the OperationCanceledException
just in case the task is cancelled due to an operation which itself just threw OperationCanceledException
- you probably still want to treat that as "just cancellation".