2

当使用时检测到控制台关闭时,如何触发功能Environment.Exit(0)

4

1 回答 1

6

最简单的方法可能是处理应用程序父进程退出时引发的AppDomain.ProcessExit事件。

例如:

Module MyApp

    Sub Main()
        ' Attach the event handler method
        AddHandler AppDomain.CurrentDomain.ProcessExit, AddressOf MyApp_ProcessExit

        ' Do something
        ' ...

        Environment.Exit(0)
    End Sub

    Private Sub MyApp_ProcessExit(sender As Object, e As EventArgs)
        Console.WriteLine("App Is Exiting...")
    End Sub

End Module

但是打电话Environment.Exit可能不是解决您最初问题的最佳方法。通常,唯一需要使用此方法的情况是可能有其他前台线程正在运行。在这种情况下,值得研究如何优雅地终止那些其他线程,而无需采取严厉措施来杀死整个进程。

Environment.Exit,尽管这个名字听起来有些悦耳,但却是一个相当残酷的措施。它不像在 Windows 任务管理器中单击“结束任务”那么糟糕(请注意,如果您这样做ProcessExit不会引发事件,这意味着上述建议将不起作用),但这可能不是您真正的解决方案想要,要么。

于 2012-04-11T03:35:28.233 回答