OperationCanceledException
和 TaskCanceledException
有什么区别?如果我使用 .NET 4.5 并使用 async
/await
关键字,我应该寻找哪个?
最佳答案
OperationCanceledException
只是 TaskCanceledException
的基类- 所以如果你捕获了前者,你仍然会捕获后者。
某些对并发集合的操作仅抛出 OperationCanceledException
,因为不涉及任何实际任务(至少就公共(public) API 而言)。参见 BlockingCollection.TryTake
举个例子。
我会捕获 OperationCanceledException
以防万一任务由于本身抛出 OperationCanceledException
的操作而被取消 - 您可能仍然希望将其视为“只是取消” ".
关于c# - OperationCanceledException 和 TaskCanceledException 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040428/