c# - OperationCanceledException 和 TaskCanceledException 之间的区别?

标签 c# exception asynchronous task

OperationCanceledExceptionTaskCanceledException 有什么区别?如果我使用 .NET 4.5 并使用 async/await 关键字,我应该寻找哪个?

最佳答案

OperationCanceledException只是 TaskCanceledException 的基类- 所以如果你捕获了前者,你仍然会捕获后者。

某些对并发集合的操作仅抛出 OperationCanceledException,因为不涉及任何实际任务(至少就公共(public) API 而言)。参见 BlockingCollection.TryTake举个例子。

我会捕获 OperationCanceledException 以防万一任务由于本身抛出 OperationCanceledException 的操作而被取消 - 您可能仍然希望将其视为“只是取消” ".

关于c# - OperationCanceledException 和 TaskCanceledException 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040428/

相关文章:

java - 理解 Java Completablefuture 的行为

c# - 更改我的对象列表上的顺序

c# - 实例化大量类

c# - Array.Clear 实际上做了什么?

exception - Spock - 使用数据表测试异常

java - 在 Java 中启动、停止和监听进程

c# - 调用异步 ActionResults 时,AllowVoidAsyncOperations 何时设置?

c# - 解析并乘以 1000 以获得 ms 而不是秒的问题

c# - 覆盖锚定容器中的锚定样式

python - 如何打破azure python SDK中已存在的租约