【发布时间】:2013-10-10 02:39:27
【问题描述】:
CancellationTokenSource 的Dispose() 是否也处理通过Token.Register() 获得的任何子CancellationTokenRegistration 对象?还是我必须单独处理每个注册?
示例 1:
async Task GoAsync(CancellationToken ct1, CancellationToken ct2)
{
using (var cts = CancellationTokenSource.CreateLinkedTokenSource(ct1, ct2))
{
cts.Token.Register(() => Debug.Print("cancelled"), false)
await Task.Delay(1000, cts.Token);
}
}
示例 2:
async Task GoAsync(CancellationToken ct1, CancellationToken ct2)
{
using (var cts = CancellationTokenSource.CreateLinkedTokenSource(ct1, ct2))
{
using (cts.Token.Register(() => Debug.Print("cancelled"), false))
{
await Task.Delay(1000, cts.Token);
}
}
}
【问题讨论】:
标签: c# .net task-parallel-library async-await cancellationtokensource