Эта головоломка всплыла в одной из наших внутренних групп обсуждения.
// в процессе А hEventA := CreateEvent(0, False, False, 'MyNamedEvent'); // в процессе Б hEventB := OpenEvent(EVENT_MODIFY_STATE, False, 'MyNamedEvent'); WaitForSingleObject(hEventB, INFINITE);В процессе Б OpenEvent успешно открывает событие, но WaitForSingleObject возвращает управление немедленно, вместо ожидания. Объясните.
Нужно SYNCHRONIZE
ОтветитьУдалитьСунулся в хелп. Вроде бы под NT дескриптор B не даёт нам права на ожидание. В 5 строчке надо EVENT_ALL_ACCESS.
ОтветитьУдалить