Запуск процессов в разное время останавливает работу событий - C - PullRequest
0 голосов
/ 28 апреля 2010

Это вопрос, который следует из моего ранее отвеченного вопроса здесь

Сначала я предположил, что у меня возникла проблема с тем, как я создавал свои события, из-за того, что дескрипторы для OpenEvent возвращали NULL, мне удалось найти реальную причину, однако я не уверен, как это сделать.

Обычно я использую Visual Studio для одновременного запуска процессов A и B, в прошлом мой дескриптор OpenEvent не работал из-за того, что процесс A искал адрес события за долю секунды до того, как процесс B время сделать это.

Мое решение состояло в том, чтобы просто позволить процессу B запускаться до процесса A, исправляя ошибку.

Проблема, с которой я столкнулся сейчас, заключается в том, что процесс B теперь читает события из процесса A, и, как вы ожидаете, он также возвращает нулевой дескриптор при попытке открыть события из процесса A.

Я создаю события в сообщении WM_CREATE обоих процессов, кроме того, я одновременно создаю поток, чтобы открывать / читать / воздействовать на события.

Кажется, если я запускаю их одновременно, у них нет шансов увидеть друг друга, или, если я запускаю их, пока один из них не пропустит и не сможет открыть дескриптор.

Может кто-нибудь предложить решение?

Спасибо.

1 Ответ

1 голос
/ 28 апреля 2010

Просто замените OpenEvent на CreateEvent. CreateEvent откроет событие вместо создания нового, оно найдет существующее событие с именем, переданным CreateEvent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...