在软件开发中,有时可能需要提前终止线程的执行。但是,不鼓励直接使用 Thread.Abort(),因为它可能会导致意外行为。
相反,建议采用协作方法来终止线程。这涉及创建一个线程来监视布尔标志,例如 keepGoing,指示它是否应该继续运行。
public class WorkerThread { private bool _keepGoing = true; public void Run() { while (_keepGoing) { // Perform the intended work of the thread. } } public void Stop() { _keepGoing = false; } }
这个修改后的实现允许在调用 Stop 方法时安全有序地关闭线程,防止 Thread.Abort() 产生不良影响。
此外,可能遇到阻塞操作(例如 Sleep 或 Wait)的线程应该准备好处理ThreadInterruptedException 并优雅退出。
try { while (_keepGoing) { // Perform the intended work of the thread. } } catch (ThreadInterruptedException exception) { // Handle the interruption and perform necessary cleanup. }
通过实现这种协作方法来终止线程,开发人员可以保持对其线程生命周期的控制,确保可靠且可预测的应用程序执行。
以上是如何安全停止 .NET 线程?的详细内容。更多信息请关注PHP中文网其他相关文章!