强制进程因错误而关闭

时间:2010-08-25 02:07:50

标签: c# process

我正在编写一个能够使用LuaInterface抛出错误并加载可编辑脚本的程序,这会导致问题,因为错误没有“Application.Exit”或“Form.FormClosing”事件似乎被调用。因此,我不能保证关闭我在应用程序中运行的进程。

当主进程因错误而结束时,有没有办法关闭已启动的进程?

1 个答案:

答案 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。然后子进程可以监视父进程,如果它终止,则子进程可以自杀。