我可以将 CancellationTokenSource.Cancel 和 CancellationTokenSource.CancelAfter(timeSpan) 用于同一任务吗?

Can I use CancellationTokenSource.Cancel and CancellationTokenSource.CancelAfter(timeSpan) for the same task?

我在文档中的任何地方都没有看到这个 -

如果我想使用 CancellationTokenSource.CancelAfter(600000) 作为故障保险,以防我的 CancellationTokenSource.Cancel() 呼叫永远不会被调用。

CancelAfter() 会以任何方式干扰 Cancel() 通话吗?

没有,没有干扰。当 CancellationTokenSource 被取消时,它是一个原子操作。 Cancel 将首先发生并立即处理活动的 CancelAfter 相关计时器,或者计时器将首先被触发,随后的 Cancel 将是 no-op。

如果你愿意可以研究Cancel method here的源代码。