Junior — Middle
Kādiem veidiem sistēmā var atcelt uzdevuma izpildi?
sobes.tech AI
Atbilde no AI
C# valodā parasti tiek izmantots CancellationToken mehānisms uzdevuma (Task) izpildes pārtraukšanai. Galvenās pārtraukšanas metodes:
- CancellationTokenSource — izveido pārtraukšanas žetonu.
- Pārsūtīt CancellationToken uz uzdevumu vai asīnhronu metodi.
- iekš uzdevuma, periodiski pārbaudīt
token.IsCancellationRequestedīpašību vai izsaukttoken.ThrowIfCancellationRequested(). - Izsaukt
CancellationTokenSource.Cancel()lai pieprasītu pārtraukšanu.
Piemērs:
var cts = new CancellationTokenSource();
var token = cts.Token;
var task = Task.Run(() => {
for (int i = 0; i < 100; i++) {
token.ThrowIfCancellationRequested();
// darbs
Thread.Sleep(100);
}
}, token);
// Pārtraukt uzdevumu
cts.Cancel();
try {
task.Wait();
} catch (AggregateException ex) {
if (ex.InnerExceptions.Any(e => e is OperationCanceledException)) {
Console.WriteLine("Uzdevums tika pārtraukts");
}
}
Tādējādi, pārtraukšana ir kooperatīvs process, kurā uzdevumam pašam jāuztur pārtraukšanas žetona pārbaude.