关于在C++中结束创建的子进程

来源:百度知道 编辑:UC知道 时间:2024/05/06 18:24:29
如果我用一个控制台程序多次调用同一个另外的很简单的控制台程序(只包含一个循环),若我想在代码中的某一处需要等待将所有的被创建的进程都被结束后(TerminateProcess())后再继续向下执行,我该怎么做呢?
我尝试过将所有的句柄保存为一个数组,再用WaitForMultipleObjects(count, handles, true, INFINITE),但很多进程没结束就继续执行了,不知是不是我的用法有问题

用资源的等待、唤醒好像有点问题,写文件吧,呵呵。
在一个文本文件里面写入一些状态,子进程都结束了重置状态;主进程就根据文本来判断好了,呵呵。

CreateProcess会返回一个HANDLE,你将所有返回的HANDLE都保存下来,然后在你说的某一处,循环使用WaitForSingleObject,来等待那些HANDLE,循环的次数是HANDLE的数目

WaitForMultipleObjects(count, handles, true, INFINITE)在有的系统中是无法等到所有进程结束后返回的,需要用WaitForSingleObject来循环等待!试下,肯定行的,我已经实现了