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); } }}Obtention d’un jeton
Section intitulée « Obtention d’un jeton »CancellationToken token = cts.Token;Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Délai d’expiration pour les requêtes HTTP : Utilisez CancellationTokenSource avec CancelAfter pour définir un délai.
Exemple : HttpClient avec annulation