如何在退出时杀死Thread?

jac*_*nad 22 c# winforms

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

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

private static void MyThread()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 49

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

Thread t = new Thread(Main.MyThread);
t.IsBackground = true;
t.Start();
Run Code Online (Sandbox Code Playgroud)

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

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

  • 我无法相信我总是在主线程上存储一堆线程并迭代它以关闭它们. (2认同)