我有两个C ++应用程序:
calc - 计算密集型,从文件读取配置
ui - 提供用户友好性。将用户在UI中所做的选择转换为配置,启动 calc ,当 calc 完成时,显示结果。
我想在 ui 中启动 calc 的多个实例并等待所有这些实例完成,然后处理所有结果。问题是,我如何等待8个同时启动的流程完成?我google了一下但没有得出结论。带有P_NOWAIT的spanwl似乎很有希望,但似乎没有简单的(“内置”)方式来查看该过程是否已经完成。
非常感谢任何帮助, 丹尼尔
答案 0 :(得分:2)
如果通过调用CreateProcess创建进程,您将获得一个可以等待的进程句柄。要一次等待多个句柄,请使用WaitForMultipleObjects功能。这个函数有一个限制 - 它只能等待一次处理MAXIMUM_WAIT_OBJECTS(对于XP来说是64,不确定它在Win7中是什么)。