如何在退出时杀死Thread?

时间:2011-05-19 17:29:47

标签: c# winforms

父窗体上的按钮用于启动线程。 如果在开发环境中关闭父窗体,则线程将在后台运行,从而阻止在64位Windows 7平台上编辑源代码。 线程必须被Menu>杀死。调试>停止调试。 父窗体关闭时以编程方式终止线程的正确方法是什么?

private void buttonW_Click(object sender, EventArgs e)
{
    Thread t = new Thread(Main.MyThread);
    t.Start();
}

private static void MyThread()
{
    ...
}

2 个答案:

答案 0 :(得分:48)

如果您希望应用程序在主线程完成时退出,您可以将新线程设为后台线程:

Thread t = new Thread(Main.MyThread);
t.IsBackground = true;
t.Start();

基本上,当所有前台线程都已退出时,该进程将退出。

请注意,如果后台线程在表单关闭时正在编写文件,或者类似的东西,这可能是个坏消息...

答案 1 :(得分:-1)

Environment.Exit(0)终止此过程并为底层操作系统提供指定的退出代码。它通常用于控制台应用程序。

Environment.Exit(0);