OperationCanceledException
和 和有什么不一样TaskCanceledException
?如果我使用 .NET 4.5 并使用async
/await
关键字,我应该寻找哪一个?
问问题
15440 次
1 回答
123
OperationCanceledException
只是基类TaskCanceledException
- 所以如果你抓住前者,你仍然会抓住后者。
并发集合上的某些操作会抛出 just OperationCanceledException
,因为不涉及任何实际任务(至少就公共 API 而言)。参见BlockingCollection.TryTake
示例。
我会抓住OperationCanceledException
以防万一任务由于本身刚刚抛出的操作而被取消OperationCanceledException
- 你可能仍然希望将其视为“只是取消”。
于 2012-10-23T22:46:49.827 回答