Junior — Middle
Kā var izmantot CancellationToken, lai atceltu asīnhronās operācijas jūsu projektā?
sobes.tech AI
Atbilde no AI
C# valodā CancellationToken tiek izmantots asinhronām operācijām pārtraukt, ļaujot pareizi pārtraukt uzdevumu pēc pieprasījuma.
Projektā var nodot CancellationToken metodēm, kas atbalsta pārtraukšanu, un pārbaudīt tā stāvokli asinhronajā kodā. Ja tokens signalizē par pārtraukšanu, operācijai jābeidzas iepriekš, atbrīvojot resursus.
Piemērs lietošanai:
public async Task LoadDataAsync(CancellationToken cancellationToken)
{
for (int i = 0; i < 10; i++)
{
cancellationToken.ThrowIfCancellationRequested();
await Task.Delay(1000); // darba simulācija
}
}
// Izsaukums ar iespēju pārtraukt
var cts = new CancellationTokenSource();
var task = LoadDataAsync(cts.Token);
// Pārtraukšana pēc 3 sekundēm
cts.CancelAfter(3000);
try
{
await task;
}
catch (OperationCanceledException)
{
Console.WriteLine("Darbība tika pārtraukta");
}
Šī pieeja ļauj elastīgi pārvaldīt asinhrono uzdevumu izpildes laiku un uzlabo lietojumprogrammas atsaucību.