Sobes.tech
Junior — Middle

Sistemdə vəzifənin icrasını ləğv etmək üçün hansı metodlar istifadə oluna bilər?

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində vəzifənin (Task) icrasını ləğv etmək üçün adətən CancellationToken mexanizmi istifadə olunur. Əsas ləğv metodları:

  1. CancellationTokenSource — ləğv etmə tokeni yaradır.
  2. CancellationToken-ı vəzifəyə və ya asinxron metoda ötürmək.
  3. Vəzifə daxilində, müntəzəm olaraq token.IsCancellationRequested xüsusiyyətini yoxlamaq və ya token.ThrowIfCancellationRequested() çağırmaq.
  4. Ləğv üçün CancellationTokenSource.Cancel() çağırmaq.

Nümunə:

var cts = new CancellationTokenSource();
var token = cts.Token;

var task = Task.Run(() => {
    for (int i = 0; i < 100; i++) {
        token.ThrowIfCancellationRequested();
        // iş
        Thread.Sleep(100);
    }
}, token);

// Vəzifəni ləğv et
cts.Cancel();

try {
    task.Wait();
} catch (AggregateException ex) {
    if (ex.InnerExceptions.Any(e => e is OperationCanceledException)) {
        Console.WriteLine("Vəzifə ləğv edildi");
    }
}

Beləliklə, ləğv etmək kooperativ bir prosesdir və vəzifənin özünün ləğv tokenini yoxlamağa davam etməsi lazımdır.