当使用时检测到控制台关闭时,如何触发功能Environment.Exit(0)
?
问问题
10261 次
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 回答