C# 在主应用程序崩溃后杀死另一个进程

C# 在主应用程序崩溃后杀死另一个进程,c#,C#,主应用程序启动另一个进程,在主应用程序崩溃后,如何结束此辅助进程?使辅助进程等待其父进程的句柄。如果父进程因任何原因而存在,请退出子进程本身。使辅助进程等待其父进程的句柄。如果父级由于任何原因而存在,请退出子级本身。您需要一个看门狗进程。但是。。。quis custodiet custodes?您需要一个看门狗流程。但是。。。quis custodiet custodes?您需要确保您的主进程不会崩溃-这是您的第一个问题 如果您不能确保这一点,那么您需要一个您需要确保您的主进程不会崩溃-这是您的

主应用程序启动另一个进程,在主应用程序崩溃后,如何结束此辅助进程?

使辅助进程等待其父进程的句柄。如果父进程因任何原因而存在,请退出子进程本身。

使辅助进程等待其父进程的句柄。如果父级由于任何原因而存在,请退出子级本身。

您需要一个看门狗进程。但是。。。quis custodiet custodes?

您需要一个看门狗流程。但是。。。quis custodiet custodes?

您需要确保您的主进程不会崩溃-这是您的第一个问题


如果您不能确保这一点,那么您需要一个您需要确保您的主进程不会崩溃-这是您的第一个问题


如果您不能确保这一点,那么您需要一个

为什么不在后台线程中启动新进程。这样,每当主应用程序关闭或崩溃,即主线程终止时,后台线程将自动终止……

为什么不在后台线程中启动新进程。这样,每当主应用程序关闭或崩溃,即主线程终止时,后台线程将自动终止……

+1但是,您可能需要稍微扩展一下。例如,子进程如何(可靠地)知道其父进程的句柄(例如,通过将PID作为命令行参数传递给子进程,然后从中获取句柄)。不幸的是,我没有第二个进程的源代码。所以我迫不及待地等待父进程。好吧,那么你需要创建第三个进程来充当看门狗。如果(exited(pid1))kill(pid2)如果我创建了新的第三个进程,并且用户完成了它,那么我的逻辑将丢失。我需要的东西,将由操作系统控制不知道你说的用户完成它是什么意思。为什么用户会手动杀死您的看门狗进程?“由操作系统控制”是什么意思?+1但是,您可能希望将其扩展一点。例如,子进程如何(可靠地)知道其父进程的句柄(例如,通过将PID作为命令行参数传递给子进程,然后从中获取句柄)。不幸的是,我没有第二个进程的源代码。所以我迫不及待地等待父进程。好吧,那么你需要创建第三个进程来充当看门狗。如果(exited(pid1))kill(pid2)如果我创建了新的第三个进程,并且用户完成了它,那么我的逻辑将丢失。我需要的东西,将由操作系统控制不知道你说的用户完成它是什么意思。为什么用户会手动杀死您的看门狗进程?“由操作系统控制”是什么意思?