等待几个应用程序完成 我有两个C++应用程序:

等待几个应用程序完成 我有两个C++应用程序:,c++,process,C++,Process,计算密集型,从文件中读取配置 用户界面-提供用户友好性。将用户在UI中所做的选择转换为配置,启动calc,并在calc完成时显示结果 我希望在ui中启动几个calc实例,等待它们全部完成,然后处理所有实例的结果。问题是,我如何等待8个同时启动的进程完成?我在谷歌上搜索了一下,但没有得出结论。与P_NOWAIT的合作似乎很有希望,但似乎没有一种简单(“内置”)的方式来判断这一过程是否已经完成 非常感谢您的帮助, Daniel如果通过调用CreateProcess创建流程,您将获得一个可以等待的流程

计算密集型,从文件中读取配置

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

  • 我希望在ui中启动几个calc实例,等待它们全部完成,然后处理所有实例的结果。问题是,我如何等待8个同时启动的进程完成?我在谷歌上搜索了一下,但没有得出结论。与P_NOWAIT的合作似乎很有希望,但似乎没有一种简单(“内置”)的方式来判断这一过程是否已经完成

    非常感谢您的帮助,
    Daniel

    如果通过调用CreateProcess创建流程,您将获得一个可以等待的流程句柄。要同时等待多个句柄,请使用函数。此函数有一个限制-它一次只能等待最大的\u wait \u对象(XP为64个,不确定在Win7中是什么)

    什么是操作系统?使用
    CreateProcess
    猜测u r。在
    CreateProcess
    生成的进程句柄上使用。或者在本例中可能使用WaitForMultipleObjects:)非常感谢,您的评论让我无意中发现了我要查找的内容。非常感谢。非常感谢。然而,我面临着一个相当奇怪的问题。当我使用CreateProcess启动calc应用程序时,calc应用程序的行为异常。例如,calc尝试打开一个不存在的文件。从命令行启动时,应用程序会看到该文件不存在。但是,当从ui通过CreateProcess启动时,“if(f=fopen(…)==NULL)”不会捕获,并且即使文件不存在也会打开(导致崩溃)。通过CreateProcess启动calc的另一个壮举是,我无法在calc中看到printf()生成的任何消息。有什么想法吗?您的calc应用程序进程从创建它的进程继承当前工作目录。试着用绝对路径代替。哦,你可以通过管道传输这个进程的stdin、stdout和stderr。请参见CreateProcess的lpStartupInfo参数。可以使用CreatePipe函数创建必要的句柄。