【发布时间】:2016-09-22 14:14:04
【问题描述】:
如何等到 PID(不是从程序本身启动)不再存在? 我希望我的程序通过命令行参数从外部程序获取 PID,然后等待它退出然后做一些事情。
我搜索了它,但我只能找到该过程由 C# 程序本身启动的示例。这很容易管理..
我打算这样做,但它显然不起作用..
Process[] pname = Process.GetProcessById(7860);
if (pname.Length == 0)
Console.WriteLine("nothing");
else
Console.WriteLine("run");
如何实现?
【问题讨论】:
-
@RaymondChen:这与引用的问题不完全相同,他们正在等待以相同代码启动的进程。
-
@wonko79:重复问答中未解决的部分是不可能的部分。一个随机进程在正确的时间神奇地找到感兴趣的应用程序的标准 I/O 句柄,并使用它们将其进程 ID 通过管道传输到其中。
-
This answer 是特定的副本。 “创建/附加到进程,然后使用
WaitForExit()阻止直到它退出,或者如果您不希望您的应用程序在等待应用程序退出时被阻止,请使用OnExited事件。”这个特定的问题使用的是“附加”案例。