我有创建事件的进程A
CreateEvent(NULL, FALSE, FALSE, L"EventA");
然后我有进程B等待EventA。
WaitForSingleObject(h, INFINITE);
在上述等待之前,进程B打开EventA并使用:
HANDLE h = OpenEvent(SYNCHRONIZE, FALSE, L"EventA");
但我无法100%确定当进程B打开它时,进程A将创建EventA。所以我在下面做了:
HANDLE h = OpenEvent(SYNCHRONIZE, FALSE, L"EventA");
while(h == NULL){
h = OpenEvent(SYNCHRONIZE, FALSE, L"EventA");
Sleep(1000);
}
这是开场活动的正确方法吗?或者是否有类似WaitForSingleObject的东西,但是用于打开例如WiatForOpenObject?
答案 0 :(得分:0)
如果N个进程是随机启动的,那么您以前等待主进程(即事件创建程序)出现并创建事件的方式就足够了。
但是,如果我们谈论用于启动多个进程的软件的良好设计,那么总会有一个进程首先生成并执行初始化内容,例如:configurations
,event creations
等首先是forks
其他将订阅事件的进程。而且这个主过程可以执行各种监控,如监控,重新处理流程。
所以我认为你需要重新思考你的设计。