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

解决方案 »

  1.   

    直接Process.GetCurrentProcess().Kill();野蛮点,直接Kill进程。
    或者每个thread.IsBackground = true;
      

  2.   

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        Application.ExitThread();
        Application.Exit();
    }
      

  3.   

    使用Abort结束线程是非常“暴力”和“野蛮”的做法,哪怕是用下面这种很简陋的办法也会表现得善良一些啊。如何:创建和终止线程(C# 编程指南)
      

  4.   

    Kill太暴力了,System.Environment.Exit(0) 这个好点,不过IsBackground就够了吧,设置了IsBackground在系统退出时候会结束线程的。