相关疑难解决方法(0)

任务构造函数中的取消令牌:为什么?

某些System.Threading.Tasks.Task构造函数将a CancellationToken作为参数:

CancellationTokenSource source = new CancellationTokenSource();
Task t = new Task (/* method */, source.Token);
Run Code Online (Sandbox Code Playgroud)

令我感到困惑的是,从方法体内部无法实际获取传入的令牌(例如,没有什么比这样Task.CurrentTask.CancellationToken).必须通过某种其他机制提供令牌,例如状态对象或在lambda中捕获.

那么在构造函数中提供取消令牌的目的是什么呢?

c# .net-4.0 task-parallel-library cancellation-token

214
推荐指数
4
解决办法
5万
查看次数

如何将task.Wait(CancellationToken)转换为await语句?

所以,task.Wait()可以转化为await task.当然,语义是不同的,但这大致是我将阻塞代码Waits转换为异步代码的方法awaits.

我的问题是如何转变task.Wait(CancellationToken)为各自的await声明?

.net c# task-parallel-library async-await

12
推荐指数
2
解决办法
1753
查看次数