Sobes.tech
Junior — Middle

Kaip galima naudoti CancellationToken norint atšaukti asinchronines operacijas jūsų projekte?

sobes.tech AI

Atsakymas iš AI

C# kalba CancellationToken naudojamas asinchroninėms operacijoms atšaukti, leidžiant teisingai nutraukti užduotį pagal prašymą.

Projekte galima perduoti CancellationToken į metodus, kurie palaiko atšaukimą, ir tikrinti jo būseną asinchroniniame kode. Jei tokenas signalizuoja apie atšaukimą, operacija turi būti baigta iš anksto, atlaisvinant išteklius.

Naudojimo pavyzdys:

public async Task LoadDataAsync(CancellationToken cancellationToken)
{
    for (int i = 0; i < 10; i++)
    {
        cancellationToken.ThrowIfCancellationRequested();
        await Task.Delay(1000); // darbo imitacija
    }
}

// Skambutis su galimybe atšaukti
var cts = new CancellationTokenSource();
var task = LoadDataAsync(cts.Token);

// Atšaukimas po 3 sekundžių
cts.CancelAfter(3000);

try
{
    await task;
}
catch (OperationCanceledException)
{
    Console.WriteLine("Operacija buvo atšaukta");
}

Šis požiūris leidžia lankstiai valdyti asinchroninių užduočių vykdymo laiką ir gerina programos reagavimo galimybes.