Junior — Middle
Жүйеде тапшырманын аткарылуусун жокко чыгаруучу кандай ыкмаларды колдонсо болот?
sobes.tech AI
AIден жооп
C# тилинде, Task аткарууну токтотуу үчүн, адатта, CancellationToken механизми колдонулат. Негизги токтотуу ыкмалары:
- CancellationTokenSource — токтотуу токенин түзөт.
- CancellationToken'ду тапшырганга Task же асинхрон ыкма.
- Task ичинде,
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("Вазипа токтотулду");
}
}
Ошентип, токтотуу — бул кызматташтык процесси, анда вазипа өзү токтотуу токенин текшерүүнү улантуусу керек.