要取消一個異步操作,可以使用以下方法之一:
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();
無論使用哪種方法,都需要在異步操作中檢查是否已取消,以確保及時停止操作。