c++ - 使用 spawnl 并等待子进程退出

标签 c++ c

我在 borland development studio 中使用 c++ 来启动一个进程。进程启动后,父应用程序应该等待它,但仍继续处理窗口消息。

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

有什么建议吗?

非常感谢

最佳答案

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

如果您需要基于计时器的后台处理,您有几个选择:

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

关于c++ - 使用 spawnl 并等待子进程退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870555/

相关文章:

c++ - ICP 产生具有高适应度值的比对

c - 为什么 "scanf"有效但 fgets 在 C 中不起作用?

c - 为C中的动态 float 组赋值

c - openssl 获取证书扩展

c++ - 如何知道指针是否在物理内存中,否则会触发页面错误?

c# - 使用语句实现与 C# 等效的 C++

c++ - 类间共享功能

c++ - 重载运算符

c++ - 具有 undefined reference 和重定位的简单程序被截断以适应错误

c - TreeView fontsize - 自定义绘制或所有者绘制