我有两个C ++进程(A和B),在Windows下执行,其中一个启动另一个。我想有效地单线程执行它们。例如:
哪种Windows同步和IPC服务最适合实现此类行为?
答案 0 :(得分:6)
事件适用于这种情况:
请确保您有错误处理,以便每个进程都可以恢复并执行任何必要的操作,如果另一个进程意外挂起或终止。超时可以处理挂起情况,等待其他进程的句柄(使用WaitForMultipleObjects()以及进程和事件句柄)可以确定是否/何时其他进程终止。
答案 1 :(得分:2)
传递两个事件句柄(CreateEvent)来处理B.当进程a完成工作时发出一个句柄信号,当进程b完成工作时发出另一个信号。每个进程都调用WaitForSingleObject()来等待另一个进程完成一组工作。
答案 2 :(得分:0)
对于进程间同步,您可以使用semaphores。这是documentation。