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

最佳答案

最简单的方法可能是处理AppDomain.ProcessExit event,当应用程序的父进程退出时会引发该the only time it is necessary to use this method is when there might be other foreground threads running

例如:

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事件,这意味着上述建议将不起作用),但可能不是您真正想要的解决方案。

09-27 07:25