我正在编写一个能够使用LuaInterface抛出错误并加载可编辑脚本的程序,这会导致问题,因为错误没有“Application.Exit”或“Form.FormClosing”事件似乎被调用。因此,我不能保证关闭我在应用程序中运行的进程。
当主进程因错误而结束时,有没有办法关闭已启动的进程?
答案 0 :(得分:1)
除非强制结束进程,例如从任务管理器中删除它或使用Environment.FailFast,否则你应该可以在Main方法中执行类似的操作:
public static void Main(string[] args) {
try {
DoNormalStartupStuff();
}
finally {
foreach (var process in _runningProcesses) {
process.Kill();
}
}
}
另一个选项是通过将进程id从父进程传递给子进程或doing something like this,使子进程知道其父进程id。然后子进程可以监视父进程,如果它终止,则子进程可以自杀。