Tam*_*zma 4 c# cancellationtokensource
例如,如果我想在一个Dispose()调用中取消某个操作(可以多次调用),那么我需要写
public void Dispose()
{
if (!cancellationTokenSource.IsCancellationRequested)
{
cancellationTokenSource.Cancel();
}
}
Run Code Online (Sandbox Code Playgroud)
或者更简单的就足够了
public void Dispose()
{
cancellationTokenSource.Cancel();
}
Run Code Online (Sandbox Code Playgroud)
(欢迎您评论在 Dispose 方法中取消事物是否明智,但这不是本问题的重点。)
是的。
但CancellationTokenSource前提是尚未处置。
从参考来源:
ThrowIfDisposed();
// ...
// fast-path test to check if Notify has been called previously
if (IsCancellationRequested)
return;
Run Code Online (Sandbox Code Playgroud)