1

在应用程序启动时

public form1()
{
    InitializeComponent();
    dirPath1 = ConfigurationManager.AppSettings["path1"];
    dirPathath2 = ConfigurationManager.AppSettings["path2"];
    if ((!Directory.Exists(dirPath1)) && (!Directory.Exists(dirPath2)))
    {
        this.Close();              
        Application.Run(new form2());
    }

    //rest of code
}

在 Form2 取消按钮上单击

private void btnCancel_Click(object sender, EventArgs e)
{
    Application.Exit();            
}

据我说,现在应该停止申请。但它的作用是继续执行 form1 构造函数中的“其余代码”部分。

4

2 回答 2

1

Application.Exit() 将仅退出消息循环,这是您调用 Application.Run 之后的循环。如果您想退出整个应用程序-

尝试

  Environment.Exit(0)

它只会杀死这个过程。

于 2013-09-06T08:07:35.817 回答
0

您没有在代码中显示任何线程的使用,但假设您确实有线程。要关闭所有线程,您应该在启动它们之前将它们全部设置为后台线程,然后它们将在应用程序退出时自动关闭,例如:

Thread myThread = new Thread(...);
myThread.IsBackground = true; // <-- Set your thread to background
myThread.Start(...);

然后尝试

 Application.Exit(); 
于 2013-09-06T08:18:28.290 回答