Heim >Backend-Entwicklung >C++ >Wie kann ich Aufgaben in einem Thread -Pool anmutig stornieren, anstatt Thread.abort () zu verwenden?
Die elegante Behandlung der Stornierung der Thread -Aufgabe
In multi -thread -Anwendungen sind effektive Verwaltung und Beendigung von Aufgaben in Threads sehr wichtig. In diesem Beispiel haben Sie auf ein Problem gestoßen, dh die .abort () auf dem Thread konnten die zugehörige Aufgabe nicht beenden. Um dieses Problem zu lösen, untersuchen wir eine Empfehlungsmethode: Verwenden Sie die Stornierungsmarke.
Verstehen Sie den Threadpool und das Aufgabenverhalten
Beim Erstellen von System.Threading.Tasks hängen diese Aufgaben von der Hintergrund -Thread -Verwaltung der Thread -Pool -Verwaltung ab. Da möglicherweise Ressourcenleckage und Anwendungsinstabilität verursacht werden können, wird nicht empfohlen, diese Threads zu verwenden.
Verwenden Sie die Stornierungsmarke, um die Aufgabeabzubrechen
, anstatt sich auf .Abort () zu verlassen, ist es besser, die Stornierungskennzeichnung als effektivere und kontrollierbare Aufgabe zur Beendigung der Methode zu verwenden. Das Arbeitsprinzip ist wie folgt: Erstellen Sie eine Stornierung, und geben Sie seine Stornierung an.
Wenn Sie die Aufgabe initialisieren, übergebene die Stornierung an seinen Konstruktor oder die StartNew -Methode.
In diesem Beispiel wird die Aufgabe auf unbestimmte Zeit ausgeführt, bis die Methode der StornierungTokenSource.cancel () aufgerufen wird, um die Stornierungslogik in der Aufgabe auszulösen und ihre Ausführung zu beenden. Der verbesserte Code vermeidet unnötige Anweisungsnisten, wodurch der Code prägnanter und einfach zu lesen ist.
Das obige ist der detaillierte Inhalt vonWie kann ich Aufgaben in einem Thread -Pool anmutig stornieren, anstatt Thread.abort () zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!