Heim > Backend-Entwicklung > C++ > Wie kann ich TPL-Aufgaben ordnungsgemäß abbrechen, anstatt die Abbruchmethode zu verwenden?

Wie kann ich TPL-Aufgaben ordnungsgemäß abbrechen, anstatt die Abbruchmethode zu verwenden?

Barbara Streisand
Freigeben: 2025-01-25 02:33:09
Original
1084 Leute haben es durchsucht

How Can I Gracefully Cancel TPL Tasks Instead of Using the Abort Method?

Stornieren Sie die TPL -Mission elegant

In einer thread -basierten Programmierung muss die Aufgabe möglicherweise abgebrochen werden, wenn sich die Umgebung ändert oder Threads enden müssen. Bei Verwendung der ABORT -Methode zum Beenden des Threads wird System.Threading.Task -Instanz jedoch nicht automatisch gestoppt. In diesem Artikel wird erläutert, warum das Abort -Signal nicht direkt an die Aufgabe übertragen werden kann, und bietet eine alternative Lösung, um das Token abzubrechen.

Es wird nicht empfohlen, die Aufgabe mit der ABORT -Methode zu stornieren, da dies zu einem zufälligen Verhalten und potenziellen Datenschäden führen kann. Die empfohlene Methode besteht darin, die Stornierung am Token zu verwenden.

Die Implementierung der Stornierung des unten stehenden Tokens:

In diesem Beispiel:
<code class="language-csharp">class Program
{
    static void Main()
    {
        var cts = new CancellationTokenSource();
        CancellationToken ct = cts.Token;

        // 创建一个持续执行某些操作的任务
        Task.Factory.StartNew(() =>
        {
            while (!ct.IsCancellationRequested)
            {
                // 模拟繁重的工作
                Thread.Sleep(100);
            }
            Console.WriteLine("任务已取消");
        }, ct);

        // 模拟等待任务启动一小段时间
        Thread.Sleep(3000);

        // 发送取消请求
        cts.Cancel();

        // 主线程阻塞,等待用户按下按键
        Console.ReadKey();
    }
}</code>
Nach dem Login kopieren

Erstellen Sie eine Stornierung von Token (CTS) und seinem Token (CT).
  • Erstellen Sie eine Aufgabe und konfigurieren Sie sie, um das Token abzubrechen.
  • Innerhalb der Aufgabe, eine starke Arbeitsbelastung kontinuierlich ausgeführter Simulation, und regelmäßig die Stornierungsanforderung überprüfen.
  • Nachdem die Aufgabe einen kurzen Zeitraum begonnen hatte, wird das Stornierungssignal gesendet, indem die Token -Quelle storniert wird.
  • Der Haupt -Thread wird suspendiert und wartet darauf, dass der Benutzer eintritt, um das Verhalten und die Ausgabe der Aufgabe zu beobachten.
  • Dieses Revisionsbeispiel vereinfacht den Code, während die Kernfunktionen und die Klarheit aufrechterhalten werden

Das obige ist der detaillierte Inhalt vonWie kann ich TPL-Aufgaben ordnungsgemäß abbrechen, anstatt die Abbruchmethode zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage