温馨提示×

c# 定时任务中断如何处理

c#
小樊
96
2024-07-14 05:53:22
栏目: 编程语言

在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."。

这样,我们就能够很方便地处理定时任务中断的情况。

0