多线程退出的问题
问题描叙:一个Form程序,点Create创建一个子线程A,该子线程A又创建了一个子线程B,点Exit按钮后一切都退出.
我的线程之间用最简单的通讯方式:一个静态的bool gBoolStopThread;(它为true就退出子线程)
在子线程A的入口函数如下:
public void PersonalInfoManage()
{
//启动子线程B
ThreadStart B=new ThreadStart(this.ProcessArrayList);
Thread myThreadB=new Thread(B);
myThreadB.Start();
while(gBoolStopThread==false)
{...}
}
现在,当点Exit按钮后,它的函数代码如下:
private void buttonExit_Click(object sender, System.EventArgs e)
{
gBoolStopThread=true;
this.Close();
Application.Exit();
}
gBoolStopThread变为true,那么子线程A的确退出了,那么它的资源都施放了吗?
子线程B的资源要怎么施放掉?(也将gBoolStopThread变为true)
而且,主程序好像都不能退出啊!
如何用更好的方法来解决这个问题?