Sobes.tech
Junior — Middle

Tizimda vazifani bajarishni bekor qilish uchun qanday usullar mavjud?

sobes.tech AI

AIdan javob

C# til, vazifani (Task) bajarishni bekor qilish uchun odatda CancellationToken mexanizmi ishlatiladi. Asosiy bekor qilish usullari:

  1. CancellationTokenSource — bekor qilish tokenini yaratadi.
  2. CancellationToken ni vazifa yoki asinxron metodga uzatish.
  3. Vazifa ichida, token.IsCancellationRequested xususiyatini va token.ThrowIfCancellationRequested() chaqirishni muntazam tekshirish.
  4. Bekor qilish uchun CancellationTokenSource.Cancel() chaqirish.

Misol:

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

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

// Vazifani bekor qilish
cts.Cancel();

try {
    task.Wait();
} catch (AggregateException ex) {
    if (ex.InnerExceptions.Any(e => e is OperationCanceledException)) {
        Console.WriteLine("Vazifa bekor qilindi");
    }
}

Shunday qilib, bekor qilish hamkorlik jarayonidir, bunda vazifa o'zi bekor qilish tokenini tekshirishni davom ettirishi kerak.