关闭VB.NET控制台应用程序中的功能

Ste*_*hRT 2 .net vb.net exit-code console-application exit

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

Cod*_*ray 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
Run Code Online (Sandbox Code Playgroud)

但是,呼叫Environment.Exit可能不是解决原始问题的最佳方法.通常,只有在可能有其他前台线程运行时才需要使用此方法.在这种情况下,值得调查优雅地终止其他线程的方法,而不采用会破坏整个过程的严厉措施.

Environment.Exit尽管名字听起来有点令人愉悦,但这是一个非常残酷的措施.这是不是很单击Windows任务管理器"结束任务"(请注意,如果你做的那样糟糕的是,该ProcessExit事件将不会被提高,这意味着,上述建议将无法正常工作),但它可能不是解决你真的也想要.