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("სამუშაოს შეწყვეტა მოხდა");
    }
}

ამიტომ, შეწყვეტა — ეს არის თანამშრომლობითი პროცესი, სადაც სამუშაოს თავად უნდა შეინარჩუნოს შეწყვეტის ტოკენის შემოწმება.