我有两个进程,一个使用 C# 创建,另一个使用本机 C++ 创建。
我想同步这两个进程,以便在托管进程启动并运行之前,将阻止非托管进程。
在托管进程中,我有以下代码:
// signal the unmanaged process that I am up and running
EventWaitHandle eventWaitHandle = new EventWaitHandle(false, EventResetMode.ManualReset, "MyEventName");
eventWaitHandle.Set();
在非托管进程中我有相应的代码来等待事件
HANDLE hWaitEvent = CreateEventW(NULL, TRUE, FALSE, "MyEventName");
if (hWaitEvent)
{
// wait for managed process to signal that it is up and running
WaitForSingleObject(hWaitEvent, 5000);
}
据我所知,事件是在第一个过程中设置的。其他进程中的 WaitForSingleObject 无法检测到这一点,并始终等到超时。
有什么我错过的吗?谢谢。