等几个appls完成

时间:2012-09-23 10:14:48

标签: c++ process

我有两个C ++应用程序:

  1. calc - 计算密集型,从文件读取配置

  2. ui - 提供用户友好性。将用户在UI中所做的选择转换为配置,启动 calc ,当 calc 完成时,显示结果。

  3. 我想在 ui 中启动 calc 的多个实例并等待所有这些实例完成,然后处理所有结果。问题是,我如何等待8个同时启动的流程完成?我google了一下但没有得出结论。带有P_NOWAIT的spanwl似乎很有希望,但似乎没有简单的(“内置”)方式来查看该过程是否已经完成。

    非常感谢任何帮助, 丹尼尔

1 个答案:

答案 0 :(得分:2)

如果通过调用CreateProcess创建进程,您将获得一个可以等待的进程句柄。要一次等待多个句柄,请使用WaitForMultipleObjects功能。这个函数有一个限制 - 它只能等待一次处理MAXIMUM_WAIT_OBJECTS(对于XP来说是64,不确定它在Win7中是什么)。