在C#中处理定时任务中断的一种常见方法是使用CancellationTokens。CancellationTokens允许您在需要时请求任务的中断,并在任务中断时执行相应的处理逻辑。
以下是一个简单的示例,演示了如何在C#中使用CancellationTokens处理定时任务中断:
using System; using System.Threading; using System.Threading.Tasks; class Program { static async Task Main() { CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); CancellationToken cancellationToken = cancellationTokenSource.Token; Task task = Task.Run(async () => { while (!cancellationToken.IsCancellationRequested) { Console.WriteLine("Executing task..."); await Task.Delay(1000); } Console.WriteLine("Task cancelled."); }, cancellationToken); // 模拟在5秒后取消任务 await Task.Delay(5000); cancellationTokenSource.Cancel(); Console.ReadLine(); } }
在上面的示例中,我们首先创建了一个CancellationTokenSource和一个CancellationToken。然后,我们在一个Task中执行一个定时任务,该任务每秒输出一次"Executing task…"。在5秒后,我们调用cancellationTokenSource.Cancel()方法取消任务。
在任务中,我们在每次循环中检查cancellationToken.IsCancellationRequested属性,如果它为true,就表示任务已被取消,我们就可以执行相应的处理逻辑,比如输出"Task cancelled."。
这样,我们就能够很方便地处理定时任务中断的情况。