在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."。
這樣,我們就能夠很方便地處理定時任務中斷的情況。