C#的CancellationTokenSource的使用
时间: 2024-09-06 08:08:20 浏览: 22
CancellationTokenSource是.NET框架中的一个类,用于创建、管理和取消异步操作中的“令牌”(CancellationToken)。它提供了一种优雅的方式来控制长时间运行的任务是否应该被中断。在C#中,当你需要开始一个可以被外部请求取消的操作时,通常会使用这个类。
以下是基本的使用步骤:
1. 创建`CancellationTokenSource`实例:
```csharp
CancellationTokenSource cts = new CancellationTokenSource();
```
2. 发送一个令牌(Token):
```csharp
// 如果你想立即取消操作,可以调用Cancel()
cts.Cancel();
```
3. 在异步操作中使用令牌:
```csharp
async Task MyLongRunningTask(CancellationToken cancellationToken)
{
try
{
while (!cancellationToken.IsCancellationRequested)
{
// 执行耗时操作...
}
}
catch (OperationCanceledException)
{
// 操作已取消,处理异常
}
}
```
4. 当不再需要管理令牌时,别忘了关闭源:
```csharp
// 或者通过Close()释放资源,相当于调用Cancel()
cts.Dispose();
```