Junior — Middle
სისტემაში დავალების შესრულების გაუქმების რა მეთოდები არსებობს?
sobes.tech AI
პასუხი AI-სგან
C# ენაში ჩვეულებრივ გამოიყენება CancellationToken მექანიზმი სამუშაოს (Task) შეწყვეტისთვის. ძირითადი შეწყვეტის მეთოდები:
- CancellationTokenSource — ქმნის შეწყვეტის ტოკენს.
- CancellationToken გადაცემა სამუშაოს ან ასინქრონულ მეთოდს.
- სამუშაოს შიგნით პერიოდულად შემოწმება
token.IsCancellationRequestedთვისების ანtoken.ThrowIfCancellationRequested()-ის გამოძახებით. 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("სამუშაოს შეწყვეტა მოხდა");
}
}
ამიტომ, შეწყვეტა — ეს არის თანამშრომლობითი პროცესი, სადაც სამუშაოს თავად უნდა შეინარჩუნოს შეწყვეტის ტოკენის შემოწმება.