一个C#写的.net程序,点关闭后依然在进程里存在,如何解决?谢谢!

解决方案 »

  1.   

    你的程序里开了新线程没有杀死。
    退出的时候杀死所有的线程即可。
    ---------------------------------------------
    试一下在关闭时调用
    System.Windows.Forms.Application.ExitThread();
      

  2.   

    如果你的开的线程,应该可以定义线程变量名称,比如为MyThread,在关闭程序前,Closing事件中对线程进程判断:
    if(MyThread.IsAlive)
    {
        MyThread.Abort();
        while(MyThread.IsAlive)
           System.Threading.Thread.Sleep(5);
    }
      

  3.   

    Vs2005不推荐使用Abort()方法建议使用Join()方法.如何用?myThread.join()表示当myThread线程执行完毕后,退出..最好能设一个标志flag.
    比如线程回调函数写成这样的形式:
    while(flag)
    {
       //线程里的其他操作
    }
    当退出时,先设flag=false;
    然后myThread.Join();等待退出.....
      

  4.   

    private void 退出_Activate(object sender, EventArgs e)
            {
                this.Close();
                this.Dispose();
                Application.Exit();
            }单用this.Close();根本不事关闭,很多刚学.NET的都犯这个错误。