2011-03-11 86 views
4

在我的服务器/客户端设置中,我有客户端应用程序管理机器上的其他应用程序(启动/停止/重新启动/查询进程)。现在,我只是使用进程ID进行了一个非常基本的设置,但是它在启动之前发生了,我需要改进它。NET中的进程管理

如果进程停止,并且另一个开始在它发出查询的时间间隔内使用相同的ID,则会使系统失效。我启动的任何进程都不会来自同一个文件路径,但通常会有相同的可执行文件名称。

我没有太多的运气发现它,但我可以找到正在运行的服务的可执行路径?我想我最好的办法是在查询运行状态时首先查找应该存储的ProcessID,如果运行的话,检查文件路径/可执行文件名以确保它匹配。

会有更好的方法来做到这一点,或者这是最好的情况?

回答

4

您可以使用Process.Exited事件在您正在监控的进程退出时收到通知。通过这种方式,就不会有这样的事情发生,“而你不在寻找”。

注意:对于要提出的Exited事件,首先必须将Process.EnableRaisingEvents明确设置为true

+0

完美,谢谢! – 2011-03-11 12:48:45

+0

它说现在接受答案还为时过早,我只是在等待,直到那件事消失。 – 2011-03-11 12:56:09

+0

@大卫:对不起!我看到你是一个新手,并认为你可能还不熟悉该网站的用户界面和/或“工作流程”。 – Jon 2011-03-11 12:58:09