要取消一个异步操作,可以使用以下方法之一:
CancellationTokenSource cts = new CancellationTokenSource();
CancellationToken token = cts.Token;
// 开始异步操作
Task.Run(async () =>
{
await YourAsyncOperation(token);
}, token);
// 取消操作
cts.Cancel();
TaskCancellationSource cts = new TaskCancellationSource();
// 开始异步操作
Task.Run(async () =>
{
await YourAsyncOperation();
}, cts.Token);
// 取消操作
cts.Cancel();
Task.Run(async () =>
{
await Task.Delay(5000); // 模拟异步操作
if (cts.Token.IsCancellationRequested)
{
// 已取消操作
return;
}
// 继续执行操作
}, cts.Token);
// 取消操作
cts.Cancel();
无论使用哪种方法,都需要在异步操作中检查是否已取消,以确保及时停止操作。