如题,每次窗体关闭时都弹出对话框说正在结束线程,应该怎么完美的结束所有子线程呢?
private void frmGetImg_FormClosed(object sender, FormClosedEventArgs e)
{
for (int i = 0; i < threadnum; i++)
{
if (myThread[i] == null)
{ }
else
{
myThread[i].Abort();
}
}
}
private void frmGetImg_FormClosed(object sender, FormClosedEventArgs e)
{
for (int i = 0; i < threadnum; i++)
{
if (myThread[i] == null)
{ }
else
{
myThread[i].Abort();
}
}
}
解决方案 »
- 寻找C#操作Oracle数据库写的公共类,最近有调用试范
- 如何计算GridView某列的汇总?
- 如何设置HideSelection=false时的颜色,灰灰的太不显眼了
- 为什么用vs2003编译可以运行的线程操作到vs2005里就出错了呢?(附图)
- 关于C#操作活见鬼的问题.(注:本人已搜过msdn并学习过相关问答)
- C# 文件流反向写入一空白文件,请教!!
- C#中,如何在FileStream中插入字符?
- c#如何做一个界面,将一个数据库表中的数据追加在另外一个数据库的表里!谢谢
- 请大家帮忙找一下有没有水晶报表与C#编程的树,马上结贴(100)
- 关于asp.net上传文件的问题!
- 请教经验,页面代码
- winForm中子窗体如何恰好嵌入在父窗体的状态栏下
myThread[i].IsBackground = true;
myThread[i].Start();
{
for (int i = 0; i < threadnum; i++)
{
if (myThread[i] == null)
{ }
else
{
try
{
myThread[i].Abort();
}
catch{;}
}
}
}
{
for (int i = 0; i < threadnum; i++)
{
if (myThread[i] == null)
{ }
else
{
try
{
myThread[i].Abort();
}
catch{;}
}
}
myThread.Clear();
}
Process.GetCurrentProcess().kill();这样无论程序在干什么都立即退出了。建议这个方法不要随意使用哈。最好还是通过控制线程的运行的标志(比如bool变量),来正常结束线程。必要的时候可以使用join方法。
{
if (myThread[i] != null && myThread[i].IsAlive == true)
{
myThread[i].Abort();
}
}