WaitForSingleObject отсутствует некоторые SetEvent между двумя процессами
Я реализую RPC в Windows. используя CreateFileMapping и MapViewOfFile для буфера сообщений.
и для синхронизации я использую
m_SendEvent = CreateEvent(NULL, FALSE, FALSE, TEXT(sendEventID.c_str()));
m_WaitForEvent = CreateEvent(NULL, FALSE, FALSE, TEXT(waitEventID.c_str()));
во время отладки поток выглядит хорошо, но когда я пытаюсь работать нормально, он зависает на WaitForSingleObject(m_WaitForEvent,INFINITE);
для обоих процессов. Кажется, в ожидании отсутствует сигнал.
Есть ли способ, которым мы можем убедиться, что он не пропустит это. Есть ли другой способ синхронизации между процессом
Ниже приведен пример кода для создания события
m_SendEvent = CreateEvent(NULL, FALSE, FALSE, TEXT(sendEventID.c_str()));
ResetEvent(m_SendEvent);
m_WaitForEvent = CreateEvent(NULL, FALSE, FALSE, TEXT(waitEventID.c_str()));
ResetEvent(m_WaitForEvent);
Ниже приведен пример кода для отправки буфера
SetEvent(m_SendEvent);
WaitForSingleObject(m_WaitForEvent,INFINITE);
CopyMemory((PVOID)m_pBuf, pBuf, size);
SetEvent(m_SendEvent);
Ниже приведен пример кода для восстановления буфера
WaitForSingleObject(m_WaitForEvent,INFINITE);
SetEvent(m_SendEvent);
WaitForSingleObject(m_WaitForEvent,INFINITE);
CopyMemory((PVOID)pBuf, m_pBuf, size);