如何在程序关闭时强制所有程序线程退出?

arm*_*min 11 c# multithreading

关闭主窗口后,如何确保所有程序线程都中止?

Fel*_* K. 17

您可以将"IsBackground"属性设置为true.CLR在应用程序退出时关闭所有后台线程.


Kie*_*one 13

  • 如果你已经很好地设计了螺纹,你应该有一个机制来关闭它们 - 例如用一个ManualResetEvent信号来关闭它们
  • 你可以让Thread.Join等到它们关闭,或者Thread.Abort让它们以令人讨厌的方式中止
  • 如果它们是后台线程,它们将在应用程序关闭时关闭

另见:http://msdn.microsoft.com/en-us/library/7a2f3ay4(v = vs.80).aspx

  • 有道理.除非你理解反对的论点而你没有其他选择,否则不要这样做. (2认同)

Isr*_*ina 6

尝试

Application.ExitThread();
Environment.Exit(0);
Run Code Online (Sandbox Code Playgroud)

要么

Dispatcher.CurrentDispatcher.Thread.Abort();
Run Code Online (Sandbox Code Playgroud)