传递给CancellationToken.Register的回调是否导致同步等待?

时间:2019-02-15 13:26:57

标签: c# asynchronous

如果我在CancellationToken.Register上附加了回调,那么在取消CancellationToken时,该回调的执行是否同步处理(因此阻塞)?还是异步处理?

1 个答案:

答案 0 :(得分:2)

取消回调始终在称为CancellationTokenSource.Cancel的线程中同步执行。如果您无力阻止,则需要在单独的线程中调用Cancel

如果这让您感到困扰,我打开了一个问题以提供异步取消:https://github.com/dotnet/corefx/issues/23716

到目前为止,它并没有获得太多的关注。