Sobes.tech
Junior — Middle

Жүйеде тапшырманын аткарылуусун жокко чыгаруучу кандай ыкмаларды колдонсо болот?

sobes.tech AI

AIден жооп

C# тилинде, Task аткарууну токтотуу үчүн, адатта, CancellationToken механизми колдонулат. Негизги токтотуу ыкмалары:

  1. CancellationTokenSource — токтотуу токенин түзөт.
  2. CancellationToken'ду тапшырганга Task же асинхрон ыкма.
  3. Task ичинде, token.IsCancellationRequested мүлкүн периоддук текшерүү же token.ThrowIfCancellationRequested() чакыруу.
  4. Токтотуу үчүн 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("Вазипа токтотулду");
    }
}

Ошентип, токтотуу — бул кызматташтык процесси, анда вазипа өзү токтотуу токенин текшерүүнү улантуусу керек.