我在 borland development studio 中使用 c++ 来启动一个进程。进程启动后,父应用程序应该等待它,但仍继续处理窗口消息。
我尝试在启动计时器后将 spawnl 与 P_WAIT 一起使用,但是当线程被阻塞时计时器不会触发,我还尝试将 spawnl 与 P_NOWAIT 一起与 cwait 一起使用,但这也没有用。
有什么建议吗?
非常感谢
最佳答案
您是否正在等待处理 Windows 消息的方法中的进程完成?如果您在按钮单击处理程序中等待新进程,则在按钮单击方法完成之前,Windows 将不再处理任何消息。
如果您需要基于计时器的后台处理,您有几个选择:
- 创建一个线程来等待进程完成。
- 创建一个新计时器,定期检查 WaitForExit() 以确定其他进程何时完成。
- 在您当前的处理程序中,使用您的计时器周期作为参数调用 Windows WaitForExit()。如果 WaitForExit() 返回时该过程未完成,则执行基于计时器的处理。请注意,此选项仍然不会导致处理任何 Windows 消息。
关于c++ - 使用 spawnl 并等待子进程退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870555/