2011-03-11 92 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