Sobes.tech
Junior — Middle

Кадом усулҳо барои бекор кардани иҷрои вазифа дар система истифода мешаванд?

sobes.tech AI

Ҷавоб аз AI

Дар C# механизми CancellationToken одатан барои бекор кардани иҷрои вазифа (Task) истифода мешавад. Методҳои асосии бекоркунӣ:

  1. CancellationTokenSource — созишномаи бекоркунӣ месозад.
  2. Пас додани CancellationToken ба вазифа ё асинхронӣ.
  3. Дар дохили вазифа, бо назорати пайвастаи хусусияти token.IsCancellationRequested ё даъвати token.ThrowIfCancellationRequested().
  4. Даъвати CancellationTokenSource.Cancel() барои дархости бекоркунӣ.

Масалан:

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

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

// Бекор кардани вазифа
cts.Cancel();

try {
    task.Wait();
} catch (AggregateException ex) {
    if (ex.InnerExceptions.Any(e => e is OperationCanceledException)) {
        Console.WriteLine("Вазифа бекор шуд");
    }
}

Бинобар ин, бекоркунӣ — ин равандӣ ҳамкорӣ аст, ки дар он вазифа бояд назорати токени бекорро нигоҳ дорад.