等到进程不再运行或直到超时,以先发生者为准
我想使用taskkill杀死在机器上运行的进程,如果它们在X秒后仍在运行(Windows服务已停止,但进程耗尽需要时间)在C#(.net)中完成上述操作的最正确方法是什么2.0或可能3.0)?
我给出了进程名称(使用Process.GetProcesses()
)来validation进程是否仍在运行的实用程序方法。 (由于我的代码没有生成过程,我无法使用WaitTillExit知道它何时不再运行)
PS:该进程在远程计算机上运行
实际上,您可以使用Process.WaitForExit()。
只需让流程等待通过
Process p = Process.GetProcessById(iYourID);
然后打电话
if(!p.WaitForExit(iYourInterval)) { p.Kill(); }
您也可以通过他们的名字获取流程
Process.GetProcessesByName(strYourProcessName);
您可以调用Process.WaitForExit
,传递适当的超时。 这样您就不需要使用自己的检查来查看进程是否仍在运行。
Process p = ... bool exited = p.WaitForExit(10000); // 10 seconds timeout