c# cancellationtokensource 已取消
时间: 2024-10-11 07:16:41 浏览: 28
在 C# 中,`CancellationTokenSource` 是一个用于管理 `CancellationToken` 的类,它允许开发者创建一个可以取消的操作或长时间运行的任务。当需要在异步操作中提供一个可以随时取消请求的机制时,`CancellationTokenSource` 就派上用场了。
当你创建一个 `CancellationTokenSource` 实例并开始一个任务时,你可以通过它的 `Cancel()` 方法来中断这个任务。`CancellationToken` 对象会被设置为已取消状态,这会通知相关的异步操作检查这个标志,如果发现已取消,就会停止当前的行为并采取适当的清理措施,比如释放资源或抛出异常。
使用时,通常会在需要取消的地方获取 `CancellationToken`,然后在任务中定期检查它是否已被取消:
```csharp
var tokenSource = new CancellationTokenSource();
var cancellationToken = tokenSource.Token;
Task.Run(() => {
while (!cancellationToken.IsCancellationRequested) {
// 执行耗时操作
if (/* 某个条件触发了取消 */)
tokenSource.Cancel();
}
// 任务被取消后的清理工作
});
// 另一处可以取消任务
tokenSource.Cancel();
```
阅读全文