【发布时间】:2019-07-22 09:00:34
【问题描述】:
我有一个将 CancellationToken 作为参数的异步方法,以便可以将其传递给稍后调用的另一个方法。我想用 CancellationToken 调用该内部方法,该方法在 10 秒后取消,或者手动取消“父级”CancellationToken。
我有带有 CancellationToken 参数的方法 A。 我有从方法 A 调用的带有 CancellationToken 参数的方法 B。
我想用 10 秒后取消的令牌或当传递给方法 A 的“原始”令牌被取消时调用方法 B。
我知道我可以使用CancellationTokenSource(TimeSpan.FromSeconds(10)) 获取 10 秒后取消的令牌并将其从 A 传递给方法 B。但是如果方法 A 的参数中的令牌被取消,我不知道如何取消方法 B。
【问题讨论】:
-
您可能需要 2 个
CancellationTokens来完成此操作。 -
除了@TheGeneral this 可能会有帮助。
-
您是否尝试过在第一个令牌上使用
CancellationToken.Register来安排使用CancellationTokenSource.CancelAfter在第二个令牌上取消? -
@SebastianSchumann - 这就是答案。如果您创建完整的回复,我会接受它作为答案。
-
@PauloMorgado 添加与答案相同的内容。接受他的答案 - 添加相同的答案没有意义
标签: c# .net async-await cancellationtokensource