取消有延迟/超时的资源 - 后来发生了什么?

时间:2013-11-20 15:31:27

标签: .net .net-4.5 async-await cancellation

初始化CancellationTokenSource with a delay value集时,是否可以事后检查到底发生了什么 - 是否达到超时时间或是否明确调用.Cancel(..)?

现在,在延迟似乎之后发生的OperationCanceledException没有这样的指示,但也许我不知何故错过了它。

1 个答案:

答案 0 :(得分:3)

解决这个问题的一种方法是有两个单独的CancellationTokenSource:一个用于延迟,另一个用于手动取消。然后,您可以使用CancellationTokenSource.CreateLinkedTokenSource()将它们合并为一个并使用它。取消组合令牌源后,您可以检查两个原始令牌源以查看发生的情况。