代码之家  ›  专栏  ›  技术社区  ›  caesay

NET中的进程管理

  •  2
  • caesay  · 技术社区  · 14 年前

    如果我的应用程序从任务管理器终止,或者由于某种原因崩溃,我如何确保我的helper exe关闭?这可能吗?我需要外部文件吗?

    3 回复  |  直到 14 年前
        1
  •  3
  •   John Saunders Tony    14 年前

    使用 Job Objects 管理进程组。在本例中,您希望使用 CreateJobObject SetInformationJobObject 设置JOB\u OBJECT\u LIMIT\u KILL\u ON\u JOB\u CLOSE标志,并使用 AssignProcessToJobObject

        2
  •  0
  •   Peter Ruderman    14 年前

    您应该创建父进程句柄的可继承副本,并在命令行上将其值传递给助手进程。然后,helper进程可以在一个单独的线程(或者主线程,如果您很聪明的话)上等待该句柄。当句柄发出信号时,表示启动过程已终止。

    编辑

    因为您不能更改helper进程,所以您的选项更加有限。您可以尝试将处理程序附加到启动进程的OnAppDomainUnloaded事件,但我不确定这是否适用于您所关心的所有情况。您还可以创建第三个进程来监视第一个进程。这个过程就像我上面描述的那样。如果您真的想了解,可以将远程线程注入helper进程以监视父进程。这是非常技术性的,所以我建议不要这样做。

        3
  •  0
  •   jgauffin    14 年前