1

所以这是我在模块函数中的代码。我想关闭我调用的程序Application.Exit,但它一直在运行。有充分的理由吗?

  Dim OpenFileDialog1 As New FolderBrowserDialog
    If OpenFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then

        pictureFolder = OpenFileDialog1.SelectedPath

        movingPictures(pictureFolder)

        'GetImagePath()

    Else

        Dim answer As DialogResult
        answer = MessageBox.Show("The Program needs this folder to continue, " & vbCrLf & _
                                  "Choose Retry to try again, or Cancel to close.", "Retry or Close?", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information)
        If answer = vbRetry Then
            GoTo RepickOpenfileDialog
        Else
            ' essentially ... here is where I'd like to close the program ... 
            ' but it simply won't... it keeps running though the code... 
            ' there a good reason for that ?
            Application.Exit()
            Form1.Close()
        End If
    End If
    processLock = 0
4

2 回答 2

2

什么是进程锁?是否有其他线程正在执行?如果是这样,这可能是你的问题。

于 2013-05-02T18:27:39.010 回答
0

Exit 方法不会引发 Closed 和 Closing 事件,这些事件在 .NET Framework 2.0 中已过时。

当调用 Application.Exit 方法退出应用程序时,不会引发 Form.Closed 和 Form.Closing 事件。如果您在其中任何一个事件中都有必须执行的验证代码,则应在调用 Exit 方法之前为每个打开的表单单独调用 Form.Close 方法。

根据调用的所有内容尝试这样的事情......

If Not answer = vbRetry Then
        Form1.Close()
        Application.Exit()
    Else
        GoTo RepickOpenfileDialog
End If

此外,请确认您的代码在 Apllication.Exit() 行上中断。您可能需要使用 .close 方法显式关闭模式对话框...

于 2013-05-02T18:40:02.177 回答