我正在编写一个C#控制台应用程序,并且正在尝试检查我的主程序的进程何时退出,以便我可以在退出之前进行一些清理,但事件似乎永远不会触发.以下是设置事件处理程序的代码:
Process process = Process.GetCurrentProcess();
CloseConsoleHandler close = new CloseConsoleHandler(test);
process.EnableRaisingEvents = true;
process.Exited += close.CloseHandler;
//I also tried process.Exited += new EventHandler(close.CloseHandler);
Run Code Online (Sandbox Code Playgroud)
它似乎永远不会激发,不是当程序自然结束时,而不是当我单击关闭按钮时......从不.这甚至可能吗?
逻辑上讲,流程退出事件应在流程退出后触发,因此无法捕获其自身的退出。
但是还有其他选择,例如在您的类中实现Dispose进行清理,或者由于某些原因您需要Process exited事件,只需监视另一个进程中的进程即可。