使用spawnl并等待子进程退出

时间:2009-05-15 19:53:06

标签: c++ c

我在borland开发工作室使用c ++来启动一个过程。启动进程后,父应用程序应该等待它,但仍然继续处理窗口消息。

我在启动计时器后尝试使用带有P_WAIT的spawnl,但是当线程被阻塞时计时器不会触发,我也尝试使用带有P_NOWAIT的spawnl和cwait,但这也没有用。

有什么建议吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

您是否在等待处理Windows消息的方法中完成该过程?如果您在按钮单击处理程序中等待新进程,则在按钮单击方法完成之前,Windows将不再处理任何消息。

如果您需要基于计时器的后台处理,您可以选择以下几种方法:

  1. 创建一个线程以等待该过程完成。
  2. 创建一个新的计时器,定期检查WaitForExit()以确定其他进程何时完成。
  3. 在当前处理程序中,使用计时器周期作为参数调用Windows WaitForExit()。如果WaitForExit()返回时进程未完成,请执行基于计时器的处理。请注意,此选项仍会导致不处理任何Windows消息。