In der Softwareentwicklung kann es gelegentlich erforderlich sein, die Ausführung eines Threads vorzeitig zu beenden. Von der direkten Verwendung von Thread.Abort() wird jedoch abgeraten, da es möglicherweise unerwartetes Verhalten hervorruft.
Stattdessen wird empfohlen, einen kooperativen Ansatz zur Thread-Beendigung zu implementieren. Dazu gehört die Erstellung eines Threads, der ein boolesches Flag wie keepGoing überwacht und angibt, ob er weiter ausgeführt werden soll.
public class WorkerThread { private bool _keepGoing = true; public void Run() { while (_keepGoing) { // Perform the intended work of the thread. } } public void Stop() { _keepGoing = false; } }
Diese überarbeitete Implementierung ermöglicht ein sicheres und ordnungsgemäßes Herunterfahren des Threads, wenn die Stop-Methode aufgerufen wird , um die unerwünschten Auswirkungen von Thread.Abort() zu verhindern.
Darüber hinaus sollten Threads, die möglicherweise auf blockierende Vorgänge wie Sleep oder Wait stoßen, auf die Verarbeitung von a vorbereitet sein ThreadInterruptedException und ordnungsgemäß beenden.
try { while (_keepGoing) { // Perform the intended work of the thread. } } catch (ThreadInterruptedException exception) { // Handle the interruption and perform necessary cleanup. }
Durch die Implementierung dieses kooperativen Ansatzes zur Thread-Beendigung können Entwickler die Kontrolle über den Lebenszyklus ihrer Threads behalten und so eine zuverlässige und vorhersehbare Anwendungsausführung gewährleisten.
Das obige ist der detaillierte Inhalt vonWie stoppt man einen .NET-Thread sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!