在下做了一款软件,框架已经基本形成,可以运行,但存在的问题是:当点击关闭按钮,关闭主窗口后,系统中的进程依然存在,好像并没用释放掉占用的资源。必须启动资源管理器关闭。请问这是什么原因造成的?应该怎样才能点击关闭按钮,即关闭了软件,又释放掉了资源,关闭系统中的进程。

解决方案 »

  1.   

    from 之间的调用没有使用主窗体 导致 每开个都在开新进程 并且主进程一直没关
      

  2.   

    所有的线程要显式地关闭,
    btnQuit_Click()
    {
      thread.Abort();
    }
      

  3.   

    线程开得多了,有的时候窗体关闭了,有的线程还没有运行完,所以造成这种原因,在窗体关闭事件加下面这行代码:
    Process.GetCurrentProcess().Kill();
      

  4.   

    占个位子:http://topic.csdn.net/u/20100928/10/bf791ea2-630a-4d24-9159-9ddbcd436cd5.html
      

  5.   

    Process.GetCurrentProcess().Kill();
    Environment.Exit(0)方法,调用此方法,应用程序即强制退出。
    application.exit()推出应用程序,并不对后台线程和资源进行强制回收
      

  6.   

    Application.Exit();
      不应该啊!? 关闭了程序的前台进程.. 后台进程也随之释放.. 学习.. 楼主找到时什么原因后回帖说下啊..
      

  7.   

    资源指的是程序运行中分配的内存。.NET使用的GC回收策略,就算退出程序也不会立即释放资源的。
      

  8.   

    最笨的方法,在窗体关闭事件中写上this.dispose()
      

  9.   

                Thread.Sleep(1000);
                System.Environment.Exit(0);
                Application.Exit();
      

  10.   

    呵呵,如上所述,kill下,先检测线程存在不,存在Process.GetCurrentProcess().Kill();
      

  11.   

    在你program.cs内,Main方法里 实例化的窗体并没有释放资源。在程序想要达到退出效果的窗体里
    onFormClosing时间里,定义Application.Exit(); 释放当前应用程序的所有资源。
      

  12.   

    对了,退出应用的时候应该把所有的子线程都退出。try
    {
        workThread.Abort();
    }
    catch()
    {}