MDI窗体中存在多个子窗体,每个子窗体中有可能执行了
while(true)类型的循环,当然是在子线程中执行的。
现在的问题是,我关闭主窗体后,进程里面仍然有这个程序的进程。
我想可能是子窗体中的子线程没有回收,还在执行循环的原因,请问怎样在关闭这个程序的时候释放所有自窗体建立的线程?
while(true)类型的循环,当然是在子线程中执行的。
现在的问题是,我关闭主窗体后,进程里面仍然有这个程序的进程。
我想可能是子窗体中的子线程没有回收,还在执行循环的原因,请问怎样在关闭这个程序的时候释放所有自窗体建立的线程?
Application.ExitThread();
来关闭方法二:
把子线程对象用成员的方式进行保存,然后逐个关闭。
/// 窗体关闭期间释放所有资源
/// </summary>
private void frmMain_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
//遍历子窗体,并关闭
foreach(Form form in this.MdiChildren)
{
form.Close();
}
}
我增加了这个,还是没用
我刚才的代码后面加Application.ExitThread();
会抛出线程正在终止异常。