Существует ли C++ кросс-платформенное “именованное событие как” CreateEvent ()" в Win32?

Я ищу что-то аналогичное CreateEvent (), SetEvent () и WaitForMultipleObjects () от мира Win32.

Конкретно это должно быть доступно через процессы на той же машине.

Мы уже используем Постепенно для некоторого кросс-платформенного материала, но я не вижу что Постепенно:: Событие - то, что я хочу. возможно, я пропускаю что-то.

Править:

Для объяснения, что я хочу сделать:

Я хочу, чтобы процесс B знал, когда что-то происходит в процессе A. Это тривиально в win32 - Каждый процесс/поток называет CreateEvent () с названием события. Обработайте вызовы B waitForXObject () и Процесс вызовы SetEvent (), когда что-то произойдет. B сообщен.

Снова, это тривиально в win32, но как сделать это межплатформенный.

7
задан Tim 19 April 2010 в 03:08
поделиться

3 ответа

В C++ нет встроенного способа делать именованные события. Но вы можете использовать ускорение, чтобы сделать это.

Вы ищете boost::condition и boost::named_condition

Как вы также упомянули, существует: Poco.NamedEvent

4
ответ дан 7 December 2019 в 07:42
поделиться

boost имеет ряд подобных кроссплатформенных примитивов потоковой передачи.

посмотрите на boost: mutex

На самом деле, посмотрите на Кросс-платформенный эквивалент событий Windows

2
ответ дан 7 December 2019 в 07:42
поделиться

ой - Увидев ответ Брайана об именованных событиях, мне кажется, что я пропустил решение Poco:

http://pocoproject.org/docs/Poco.NamedEvent .html

Я видел только Poco.Event

. Мы, вероятно, воспользуемся этим, поскольку он кажется более простым и легким в клиентском коде.

1
ответ дан 7 December 2019 в 07:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: