使用Microsoft Visual Studio 2005 C#
主窗口启动时启动一个不断循环的线程,当主窗口关闭时(通过窗口右上角X按钮),使用Form1_FormClosed方法关闭线程,但是实验下来主窗口关闭后在任务管理器中还能看到该程序的进程,肯定是线程没关闭造成的,请问如何解决?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace thread_close
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;
}
Thread th;
private void Form1_Load(object sender, EventArgs e)
{
th = new Thread(new ThreadStart(thStart));
th.Start();
}
private void thStart()
{
while (true)
{
Thread.Sleep(1000);
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
th.Abort();
}
}
}
调试下来的问题是通过窗体右上角的X按钮关闭窗体根本不触发FormClosed事件,也就不进入private void Form1_FormClosed(object sender, FormClosedEventArgs e) 中处理关闭线程的命令,请问是我写错了还是漏掉了什么?通过窗体右上角X按钮关闭窗体到底触发什么事件?有谁能解答(自己测试成功)?能解决的追加奖励。