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("Вазифа бекор шуд");
}
}
Бинобар ин, бекоркунӣ — ин равандӣ ҳамкорӣ аст, ки дар он вазифа бояд назорати токени бекорро нигоҳ дорад.