【发布时间】:2012-12-11 15:14:24
【问题描述】:
在任务的构造函数中放置令牌的原因有很多,这里提到: Cancellation token in Task constructor: why?
使用关键字 async / await,它是如何工作的? 例如我下面的代码:
public async Task MethodAsync(CancellationToken token)
{
await Method01Async();
await Method02Async();
}
虽然它是一个异步过程。我很快就使用了“Task.StartNext”或“Task.Run”或“新任务”。为了能够指定我的取消令牌,我该怎么做?
【问题讨论】:
-
重构这些方法以获取
CancellationToken。 -
如果我不(显式)创建任务,我该如何重构?
-
如果你不能改变
Method01Async来接受一个token,你能做的最好的就是在01完成后自己检查token,提前退出而不是调用02 -
Here 是一篇关于该主题的精彩文章。你想真正停止异步任务,还是在令牌被取消并停止等待时继续?您是否知道这样做的潜在陷阱?
标签: c# async-await async-ctp cancellation-token