最近遇到这个问题,打开一个窗体,并且new了一个新的线程这个线程又new Process对象,比如这个Process对象做了一个程序的静默安装,当通过Process中的WaitForExit()方法告知子线程程序已安装完毕,线程销毁,并且退出主窗体。
  当时从任务管理器看到,主线程还是没有退出。是不是因为这个线程 new的这个Process没有结束,导致的主线程没有退出?【我只调用了WaitForExit()方法,没有调用Process.close()的方法】

解决方案 »

  1.   

    跟Process没有关系,是有线程没结束。
      

  2.   

    Environment.Exit(0),退出整个项目
      

  3.   

    Thread.IsBackground = True;
      

  4.   

    WaitForExit定时返回,检查线程是否被终止        while (!process.HasExited)
            {
                if (backgroundWorker1.CancellationPending)
                {
                    process.Kill();
                    continue;
                }
                else
                    Thread.Sleep(1000);
            }
      

  5.   

       Thread.CurrentThread.IsBackground = true;