Junior — Middle
Sistemdə vəzifənin icrasını ləğv etmək üçün hansı metodlar istifadə oluna bilər?
sobes.tech Süni İntellekt
AI-dan cavab
C# dilində vəzifənin (Task) icrasını ləğv etmək üçün adətən CancellationToken mexanizmi istifadə olunur. Əsas ləğv metodları:
- CancellationTokenSource — ləğv etmə tokeni yaradır.
- CancellationToken-ı vəzifəyə və ya asinxron metoda ötürmək.
- Vəzifə daxilində, müntəzəm olaraq
token.IsCancellationRequestedxüsusiyyətini yoxlamaq və yatoken.ThrowIfCancellationRequested()çağırmaq. - Ləğv üçün
CancellationTokenSource.Cancel()çağırmaq.
Nümunə:
var cts = new CancellationTokenSource();
var token = cts.Token;
var task = Task.Run(() => {
for (int i = 0; i < 100; i++) {
token.ThrowIfCancellationRequested();
// iş
Thread.Sleep(100);
}
}, token);
// Vəzifəni ləğv et
cts.Cancel();
try {
task.Wait();
} catch (AggregateException ex) {
if (ex.InnerExceptions.Any(e => e is OperationCanceledException)) {
Console.WriteLine("Vəzifə ləğv edildi");
}
}
Beləliklə, ləğv etmək kooperativ bir prosesdir və vəzifənin özünün ləğv tokenini yoxlamağa davam etməsi lazımdır.