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