在下做了一个软件(Winform),主窗口是“Form1.cs”,但是程序的启动窗口是“Login.cs”,从“Login.cs”是可以跳转到“Form1.cs”的。现在的问题是:
关闭主窗口Form1.cs后(也就是关闭软件了),但是在任务管理器中还存在这个进程,貌似没有释放资源似地。1、请问这是什么原因造成的?2、是不是要调用“Form1.cs”的“FormClosing”或是“FormClosed”事件来释放资源,如果是应该怎样编写代码才可以在关闭窗口时关闭线程。

解决方案 »

  1.   


    怎样跳?正常情况下,Login实例关闭了,Application也就不阻塞、程序关闭了。
      

  2.   

    我觉得你的启动窗口“Login.cs”还开着,你是不是把启动窗口给隐藏了再显示主窗口的啊。
      

  3.   


    恩,是的,那是不是在“Form1.cs”的“FormClosed”或是“FormClosing”事件中将“Login.cs”关闭了就行了。如果是应该怎样关闭?
      

  4.   


    其实正如三楼所言。
    代码如下:
               //界面跳转
                Form1 frm1 = new Form1();
                frm1.Show();
                this.Hide();
      

  5.   

    this.Dispose(true);
    this.Close();
    Application.Exit(); 
      

  6.   


    放在那里“Form1.cs”中的“Closing”或是“Closed”事件里面吗?
      

  7.   

    因为你将其挂起了
    Hide();
    你为什要加这个呢
      

  8.   

    Form1 frm1 = new Form1();
    frm1.Show();
    this.Hide();
    你这个只是隐藏了启动窗体而以,所以要在其它窗体这个事件中加入退出程序代码
        private void Form2_FormClosing(object sender, FormClosingEventArgs e)
            {
                System.Environment.Exit(0);
            }
      

  9.   

    在formclosed事件下加入application.exit();