【发布时间】:2014-12-18 12:42:50
【问题描述】:
我目前正在构建现有 API 的启用异步的版本,并且我正在努力寻找有关何时支持取消的好主意的任何指导。 BCL 中的一些异步方法没有接受CancellationToken 的重载,我发现这个MSDN article 声明了
并非所有异步方法都支持取消
那么,什么条件才值得通过CancellationToken 支持取消?
我倾向于以下条件:
- 任何被调用的等待方法也支持取消
- 任何等待的方法都可能需要超过 n 毫秒才能执行
- 方法实现有一个或多个逻辑退出点(例如,提前退出没有副作用)
这些是合理的条件吗?还有其他的吗?
【问题讨论】:
标签: c# .net task-parallel-library async-await cancellation