Leo*_*rdo 38 c# task-parallel-library cancellationtokensource
我开始一项任务,开始其他任务等等.
给定该树,如果任何任务失败,则整个操作的结果是无用的.我正在考虑使用取消令牌.令我惊讶的是,令牌没有"CancelThisToken()"方法......
所以我的问题是:我怎么能只拥有一个CancellationToken取消它呢?
Rya*_*anS 66
正如文档所述,您需要从源对象调用cancel方法.示例代码包含在您提供的链接中.以下是相关部分:
// Define the cancellation token.
CancellationTokenSource source = new CancellationTokenSource();
previouslyProvidedToken = source.Token;
...
source.Cancel();
Run Code Online (Sandbox Code Playgroud)
https://msdn.microsoft.com/en-us/library/system.threading.cancellationtoken(v=vs.110).aspx
我怎么能只拥有一个CancellationToken取消它呢?
如果没有对源的引用,则无法取消令牌.这并不意味着您需要首先生成令牌的CancellationTokenSource.给定令牌时,您可以创建令牌源的新实例,将其令牌分配给提供的令牌并取消它.可以读取此令牌的所有其他方将看到它已被请求取消.
作为迄今为止提供的,如果你想同时拥有答案的扩展CancellationToken实例提供给您的方法,并在内部取消,你应该检查CancellationTokenSource.CreateLinkedTokenSource。本质上,这将在cts.Cancel()被调用时取消,或者将其提供的令牌之一取消。
| 归档时间: |
|
| 查看次数: |
26738 次 |
| 最近记录: |