Windows窗体需要很长时间才能关闭

时间:2014-10-01 21:37:28

标签: c# winforms visual-studio-2010

我有一个使用OpenFileDialogSaveFileDialog的简单Windows窗体应用。表单有一个关闭按钮,单击该按钮会调用以下代码:

private void closeButton_Click(object sender, EventArgs e)
{
    this.Dispose();
}

如果我打开表单,然后在Visual Studio 2010的调试中单击关闭,表单将关闭,我几乎立即返回到编辑模式。但是,如果我打开了OpenFileDialog或SaveFileDialog对象,并且选择了一个文件或点击取消,然后点击关闭,表单立即消失,但VS最多可能需要10秒才能返回编辑模式。 / p>

我对这些方法的代码非常简单:

private void saveDirectoryButton_Click(object sender, EventArgs e)
{
    SaveFileDialog sfd = new SaveFileDialog();

    try
    {
        String path = Path.GetDirectoryName(settings.SavePath);
        if (!String.IsNullOrEmpty(saveTextBox.Text))
            path = Path.GetDirectoryName(saveTextBox.Text);
        sfd.InitialDirectory = path;
        String name = Path.GetFileName(settings.SavePath);
        if (!String.IsNullOrEmpty(saveTextBox.Text))
            path = Path.GetFileName(saveTextBox.Text);
        sfd.FileName = name;
    }
    catch { /* Don't do anything */ }

    sfd.Filter = "Data File|*.dat|All Files|*.*";
    DialogResult result = sfd.ShowDialog();
    if (result == DialogResult.OK)
        saveTextBox.Text = sfd.FileName;
}

点击“关闭”后,“输出窗口”显示以下三行:

The thread 'vshost.RunParkingWindow' (0x1b8c) has exited with code 0 (0x0).
The thread '<No Name>' (0x39c) has exited with code 0 (0x0).
The program '[6052] LogScanner.vshost.exe: Managed (v2.0.50727)' has exited with code 0 (0x0).

前两个会立即显示,第三个会在Visual Studio返回编辑模式之前弹出。

如果我打开其中一个对话框,有没有人知道为什么要花这么长时间才能返回编辑模式?

1 个答案:

答案 0 :(得分:1)

如果您要关闭单个窗体,可以使用:

this.Close();

如果要关闭整个程序,可以使用:
Environment.Exit(0);

0只是退出代码,它并不重要。
我希望它有所帮助!