Sobes.tech
Junior — Middle

Layihənizdə asinxron əməliyyatları ləğv etmək üçün CancellationToken-dan necə istifadə edə bilərsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

C#-də CancellationToken, asinxron əməliyyatların ləğv edilməsi üçün istifadə olunur və istək əsasında tapşırığın düzgün şəkildə dayandırılmasına imkan verir.

Layihədə, CancellationToken-ləri ləğv etməyi dəstəkləyən metodlara ötürmək və onun vəziyyətini asinxron kod daxilində yoxlamaq mümkündür. Əgər token ləğv etmə siqnalı verirsə, əməliyyat vaxtından əvvəl tamamlanmalı və resurslar azad edilməlidir.

İstifadə nümunəsi:

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

// Ləğv etmə imkanı ilə çağırış
var cts = new CancellationTokenSource();
var task = LoadDataAsync(cts.Token);

// 3 saniyə sonra ləğv et
cts.CancelAfter(3000);

try
{
    await task;
}
catch (OperationCanceledException)
{
    Console.WriteLine("Əməliyyat ləğv edildi");
}

Bu yanaşma, asinxron tapşırıqların icra vaxtını elastik şəkildə idarə etməyə və tətbiqin cavabvermə qabiliyyətini artırmağa imkan verir.