如何在C ++中同步两个进程(Windows)?

时间:2015-07-07 13:44:03

标签: c++ winapi process synchronization

父进程通过调用CreateProcess()方法启动子进程,该方法甚至在初始化子进程之前立即返回。如何让父进程等待Child进程初始化并开始执行? WaitForSingleObject()调用使父进程等待,直到子线程终止或超时。

有没有类似的方法让父进程等到子进程被初始化?

2 个答案:

答案 0 :(得分:4)

您可以在父进程中的WinAPI中create a named event并将其设置为无信号状态。在事件句柄上调用WaitForSingleObject。然后在子进程中,您可以按名称打开事件,并在子进程初始化后发出信号(调用SetEvent())。

答案 1 :(得分:-2)

如果您正在使用线程,那么让父线程等到子项完成的最简单方法之一就是使用.join()函数。在父进程的最终用途

child.join();