当前位置: 代码迷 >> ASP.NET >> 怎么释放多线程所占用的系统内存
  详细解决方案

怎么释放多线程所占用的系统内存

热度:7100   发布时间:2013-02-25 00:00:00.0
如何释放多线程所占用的系统内存。
我写了一个winform程序,用多线程从GSD获取数据放到本地数据库或内存,当窗体关闭时,我把线程都关闭
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
  {
  for (int i = 0; i < threadList.Count; i++)
  {
  threadList[i].Abort();
  }
  }
但是,这样只是清除了程序所占用的CPU而程序占用的内存并没有释放,任务管理器中这个进程还一直存在,怎么结束这个进程,并释放它所占用的内存啊?

------解决方案--------------------------------------------------------
直接Process.GetCurrentProcess().Kill();野蛮点,直接Kill进程。
或者每个thread.IsBackground = true;
------解决方案--------------------------------------------------------
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Application.ExitThread();
Application.Exit();
}
------解决方案--------------------------------------------------------
使用Abort结束线程是非常“暴力”“野蛮”的做法,哪怕是用下面这种很简陋的办法也会表现得善良一些啊。

如何:创建和终止线程(C# 编程指南)
------解决方案--------------------------------------------------------
Kill太暴力了,System.Environment.Exit(0) 这个好点,不过IsBackground就够了吧,设置了IsBackground在系统退出时候会结束线程的。
  相关解决方案