【发布时间】:2010-04-28 15:54:10
【问题描述】:
这是我之前回答的问题here的后续问题
起初我认为我创建事件的方式有问题,因为 OpenEvent 的句柄返回 NULL,但我设法找到了真正的原因,但我不知道该怎么做。
基本上我使用 Visual Studio 同时启动进程 A 和 B,过去我的 OpenEvent 句柄无法工作,因为进程 A 在进程 B 之前的几分之一秒内寻找事件的地址时间到了。
我的解决方案是让进程 B 在进程 A 之前运行,从而修复错误。
我现在遇到的问题是,进程 B 现在从进程 A 读取事件,并且正如您所料,当尝试从进程 A 打开事件时,它也会返回一个空句柄。
我在两个进程的 WM_CREATE 消息中创建事件,此外我还同时创建一个线程来打开/读取/对事件进行操作。
如果我同时运行它们,它们似乎没有机会看到彼此,或者如果我在它们中的另一个错过并且无法打开句柄之前运行它们。
谁能提出解决方案?
谢谢。
【问题讨论】:
标签: c winapi events multithreading