【问题标题】:How to start a process and wait for its child process to finish如何启动一个进程并等待其子进程完成
【发布时间】:2012-11-15 14:15:53
【问题描述】:

有没有办法启动一个进程,然后等待它的子进程完成?我的问题如下。我有一个 setup.exe。如果我启动它,它会运行 4-5 秒并启动 1 或 2 个新进程,然后 setup.exe 将关闭。

如果我使用 createprocess 和 WaitForSingleObject 启动 setup.exe,那么它只会等到 setup.exed 关闭。

有没有办法等到由 setup.exe 启动的新进程也完成?

谢谢

【问题讨论】:

标签: c windows


【解决方案1】:

也许你可以在启动时创建一个 Mutex 并锁定它。然后,使用 WaitForSingleObject api 让基础进程等待它。 Mutex 在其所有者进程终止时自动销毁。

或者,您可以在子进程中创建一个 tmp 文件,当进程完成时终止该文件,您的 setup.exe 可以检查 frim 是否存在以了解进程是否仍在运行。

【讨论】:

  • 互斥对象只有在最后一个句柄关闭后才会被销毁。当所有者线程终止时,它们会收到信号,但这对孙子进程仍然没有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-11
  • 2016-07-24
  • 2016-09-09
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多