Junior — Middle
Tizimda vazifani bajarishni bekor qilish uchun qanday usullar mavjud?
sobes.tech AI
AIdan javob
C# til, vazifani (Task) bajarishni bekor qilish uchun odatda CancellationToken mexanizmi ishlatiladi. Asosiy bekor qilish usullari:
- CancellationTokenSource — bekor qilish tokenini yaratadi.
- CancellationToken ni vazifa yoki asinxron metodga uzatish.
- Vazifa ichida,
token.IsCancellationRequestedxususiyatini vatoken.ThrowIfCancellationRequested()chaqirishni muntazam tekshirish. - Bekor qilish uchun
CancellationTokenSource.Cancel()chaqirish.
Misol:
var cts = new CancellationTokenSource();
var token = cts.Token;
var task = Task.Run(() => {
for (int i = 0; i < 100; i++) {
token.ThrowIfCancellationRequested();
// ish
Thread.Sleep(100);
}
}, token);
// Vazifani bekor qilish
cts.Cancel();
try {
task.Wait();
} catch (AggregateException ex) {
if (ex.InnerExceptions.Any(e => e is OperationCanceledException)) {
Console.WriteLine("Vazifa bekor qilindi");
}
}
Shunday qilib, bekor qilish hamkorlik jarayonidir, bunda vazifa o'zi bekor qilish tokenini tekshirishni davom ettirishi kerak.