Aller au contenu

CancellationTokenSource

Contexte : CancellationTokenSource est utilisé pour créer un CancellationToken et pour demander l’annulation en appelant Cancel().

using System;
using System.Threading;
using System.Threading.Tasks;
public class TimeoutExample
{
public static async Task Main()
{
using var cts = new CancellationTokenSource();
cts.CancelAfter(5000); // annulation automatique après 5 secondes
// Demande d’annulation manuelle (par exemple, appui utilisateur)
// cts.Cancel();
try
{
await LongRunningOperationAsync(cts.Token);
}
catch (OperationCanceledException)
{
Console.WriteLine("Opération annulée");
}
}
static async Task LongRunningOperationAsync(CancellationToken token)
{
for (int i = 0; i < 100; i++)
{
token.ThrowIfCancellationRequested();
await Task.Delay(100);
}
}
}
CancellationToken token = cts.Token;

Délai d’expiration pour les requêtes HTTP : Utilisez CancellationTokenSource avec CancelAfter pour définir un délai.

Exemple : HttpClient avec annulation