c#中如何结束线程?

来源:百度知道 编辑:UC知道 时间:2024/05/21 11:23:40
我是这样创建的多个线程
for(int i=1;i<1000;i++)
{
Thread t = new Thread(ta.work);
t.Start();
}
在Form1下一次创建了很多线程,现在我要退出form1,可启动的线程还活着,该如何关闭?

//初始化时加上这句
t.IsBackground=true;
//结束纯程时加上这句
t.Abort();

1.做一个强类型集合,例如list<thread>
每次创建一个线程就像集合中添加一个,退出时遍历集合,检查线程
2使用thread.IsBackground=true;//将这个线程设置为托管线程
主线程退出时托管线程随之自动释放

在ta定义里加个标志flag,默认为true
work()里用while(ta.flag){}
这样在主程序退出前ta.flag=false;就行了

把这些 t 们都记住, 比如放到一个 List 里面
然后退出的时候一一检查是不是还活着, 如果活着就 kill 掉.

试试这个
t.Abort();//线程终止

写个判断!