Sobes.tech
Junior — Middle

Hogyan használhatja a CancellationToken-t az aszinkron műveletek leállítására a projektjében?

sobes.tech MI

Válasz az MI-től

A CancellationToken C#-ban az aszinkron műveletek megszakítására szolgál, lehetővé téve a feladatok kérés szerinti helyes megszakítását.

A projektben a CancellationToken átadható olyan módszereknek, amelyek támogatják a megszakítást, és ellenőrizhető az állapota az aszinkron kódban. Ha a token jelzi a megszakítást, a műveletnek idő előtt be kell fejeződnie, felszabadítva az erőforrásokat.

Használati példa:

public async Task LoadDataAsync(CancellationToken cancellationToken)
{
    for (int i = 0; i < 10; i++)
    {
        cancellationToken.ThrowIfCancellationRequested();
        await Task.Delay(1000); // munka szimulálása
    }
}

// Hívás megszakítási lehetőséggel
var cts = new CancellationTokenSource();
var task = LoadDataAsync(cts.Token);

// Megszakítás 3 másodperc után
cts.CancelAfter(3000);

try
{
    await task;
}
catch (OperationCanceledException)
{
    Console.WriteLine("A művelet megszakadt");
}

Ez a megközelítés rugalmasan kezeli az aszinkron feladatok futási idejét, és javítja az alkalmazás válaszkészségét.