【问题标题】:C# wait for external PID to exit [duplicate]C#等待外部PID退出[重复]
【发布时间】: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 事件。”这个特定的问题使用的是“附加”案例。

标签: c# .net pid


【解决方案1】:

您可以通过编写轻松做到这一点:

var p = Process.GetProcessById(7860);
p.WaitForExit();

【讨论】:

  • 你是同一个@wonko79,那个just complained,建议的副本不会解决这个问题吗?只是发布一个答案——按照同样的标准——也不能解决这个问题。我不明白这种推理。当然,除非你是另一个 wonko79。
猜你喜欢
  • 2012-09-16
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多