我已經在c#中編寫了一個服務,用於啓動在後臺運行的其他(子)進程。我怎樣才能以優雅的方式關閉進程? Process.kill()
不是一個選項,並且Process.CloseMainWindow()
不起作用,因爲子進程沒有可見窗口(並且不應該有任何)。關閉Windows服務中的子進程
坦克爲您提供幫助。
我已經在c#中編寫了一個服務,用於啓動在後臺運行的其他(子)進程。我怎樣才能以優雅的方式關閉進程? Process.kill()
不是一個選項,並且Process.CloseMainWindow()
不起作用,因爲子進程沒有可見窗口(並且不應該有任何)。關閉Windows服務中的子進程
坦克爲您提供幫助。
如果你控制那個其他進程,你可以使用WCF在進程之間進行通信,子進程應該檢查並詢問服務是否是時候結束進程,然後子進程可以關閉並且需要清理。這裏是一個乾淨和簡單的例子
http://www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication
WCF將是正確的解決方案。 – Nathon
您可以使用WMI來做到這一點(如果這是一個選項)。看看下面的例子:http://www.codeproject.com/KB/cs/EverythingInWmi02.aspx
似乎只有一個TerminateProcess方法正在取消終止kill()。 – Nathon
歡迎SO納通。用C#編寫的子進程也是如此嗎? – Jethro
是的,它也是C# – Nathon
子進程在完成進程後不會自己關閉嗎? – Jethro