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