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();
ეს საშუალებას აძლევს უსაფრთხოდ და კონტროლირებადად გაჩერდეს ხანგრძლივი ან ფონური ოპერაციები.