在开发Web程序时在Action中尽量使用
以下代码为演示需要,一般情况下不建议主动使用
using System;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static async Task Main(string[] args)
{
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
cancellationTokenSource.CancelAfter(TimeSpan.FromSeconds(10)); // 方法运行超过10秒处罚IsCancellationRequested
await Test(cancellationTokenSource.Token);
/// 手动关闭,不能使用await,否则无意义
cancellationTokenSource.Cancel();
}
static async Task Test(CancellationToken cancellationToken)
{
// 不满足执行条件:IsCancellationRequested=true
if (cancellationToken.IsCancellationRequested)
{
Console.WriteLine("在此处处理自己的逻辑");
return;
}
// 不满足执行条件:抛出异常
cancellationToken.ThrowIfCancellationRequested();
}
}
}