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.