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