gpt4 book ai didi

c# - Thread.Abort() 与 Application.Exitthread()

转载 作者:太空狗 更新时间:2023-10-30 00:53:19 27 4
gpt4 key购买 nike

我知道Exitthread 只能在Thread 内部调用,而Abort 可以随时随地使用,只要你能访问到Thread 对象。但是,当您需要强制关闭线程时,这两种方法(在操作方面)之间是否存在其他显着差异?

最佳答案

绝对是。

Thread.Abort() 会导致可怕的、难以发现的错误,而 ExitThread() 则不会。

调用 Thread.Abort() 会导致线程内部抛出异常,这可能会导致各种麻烦。

此外,当然,ExitThread() 仅适用于运行消息循环的线程。

另请注意,调用 ExitThread() 后的代码仍将执行,尽管 UI 调用(例如 MessageBox.Show() 不会执行任何操作:

private void button1_Click(object sender, EventArgs e)
{
Application.ExitThread();
MessageBox.Show("This won't be shown because the UI is being shut down.");
Debug.WriteLine("But this is still executed");
}

如果您想以受控方式退出线程,您需要通过编写代码来积极支持它。

这里有一篇很好的 Microsoft 文章:http://msdn.microsoft.com/en-us/library/dd997364.aspx

关于c# - Thread.Abort() 与 Application.Exitthread(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913037/

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