gpt4 book ai didi

c# - 终止 .NET 线程

转载 作者:IT王子 更新时间:2023-10-29 04:40:00 28 4
gpt4 key购买 nike

我创建了一个运行特定方法的线程。但有时我想杀死线程,即使它还在工作。我怎样才能做到这一点?我尝试了 Thread.Abort() 但它显示了一个消息框,上面写着“Thread aborted”。我应该怎么办?

最佳答案

Do not call Thread.Abort()!

Thread.Abort 很危险。相反,您应该与线程合作,以便它可以和平关闭。线程需要设计成可以告诉它杀死自己,例如通过设置一个 bool 值 keepGoing 标志,当您希望线程停止时将其设置为 false。然后线程会有类似的东西

while (keepGoing)
{
/* Do work. */
}

如果线程可能在SleepWait 中阻塞,那么您可以通过调用Thread.Interrupt() 将其从这些函数中分离出来。 .然后线程应该准备好处理 ThreadInterruptedException:

try
{
while (keepGoing)
{
/* Do work. */
}
}
catch (ThreadInterruptedException exception)
{
/* Clean up. */
}

关于c# - 终止 .NET 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1051838/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com