Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ გაუქმების ტოკენის კონცეფცია მრავალმხრივი პროგრამირების კონტექსტში?

sobes.tech AI

პასუხი AI-სგან

მრავალთრაქტული პროგრამირების დროს, გაუქმების ნიშანი (Cancellation Token) არის ობიექტი, რომელიც გამოიყენება ასინქრონული ან პარალელური ოპერაციების გაუქმების კოორდინაციისთვის.

ძირითადი იდეა: ერთი ნაკადი (ან კომპონენტი) შეიძლება მოითხოვოს ოპერაციის გაუქმება, ხოლო სხვა, რომელიც ახორციელებს ამ ოპერაციას, შეუძლია პერიოდულად შეამოწმოს ნიშნის მდგომარეობა და სწორად დაასრულოს, თუ გაუქმება მოთხოვნილია.

C#-ში ეს რეალიზებულია CancellationToken და CancellationTokenSource კლასების მეშვეობით:

  • CancellationTokenSource ქმნის ნიშანს და შეუძლია სიგნალი გაუქმებაზე.
  • CancellationToken გადაეცემა დავალებებს ან მეთოდებს, რომლებიც შეიძლება შეამოწმონ IsCancellationRequested და რეაგირონ გაუქმებაზე.

მაგალითი:

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

Task.Run(() => {
    while (!token.IsCancellationRequested)
    {
        // სამუშაო შესრულება
    }
    // სუფთავება და დასრულება
}, token);

// კოდში სადღაც ვთხოვთ გაუქმებას
cts.Cancel();

ეს საშუალებას აძლევს უსაფრთხოდ და კონტროლირებადად გაჩერდეს ხანგრძლივი ან ფონური ოპერაციები.