Вопрос по windows, message, c – Был ли механизм в Windows работает как очередь сообщений в Linux?

3

Недавно я получил задание (C / C ++) использовать обмен сообщениями между различными потоками в Windows. Я погуглил и обнаружил, что у Windows тоже есть очередь сообщений, но она больше связана с окном, на самом деле мне не нужно никакого окна в моем приложении.

Как и очередь сообщений в Linux, каждый поток создает очередь сообщений и получает идентификатор очереди сообщений, отправляет сообщение с этим идентификатором, получает с этого идентификатора и т. Д., То есть очередь сообщений, которая мне нужна.

Есть ли аналогичный механизм (ы) в Windows, работает так?

Разве это не делает такого рода вещи, или я здесь совершенно в зарослях? (У меня нет опыта работы с Qt). Chris O
Даже если вам не нужно окно, вы также можете создатьmessage-only окно:msdn.microsoft.com/en-us/library/windows/desktop/… jamesdlin
Ваш работодатель ожидает, что вы найдетеRabbitMq или аналогичные инструменты, или вам поручено воссоздатьmq_send() POSIX-указанный интерфейс? Что конкретно вы пытаетесь достичь? sarnold

Ваш Ответ

1   ответ
5

Вам не нужно окно для использования сообщений в Windows, любой поток, который вызывает PeekMessage или GetMessage, получает очередь сообщений, и вы можете публиковать в ней сообщения с помощьюPostThreadMessage.

Сообщения должны нормально работать в одном и том же процессе, но если это межпроцессный процесс и вам нужно отправить больше, чем size_t * 2, вы должны посмотреть на другиеМеханизмы IPC или создайте свой собственный с общей памятью и некоторым типом блокировки. Windows также имеетMSMQ.

Вы не указали, нужен ли вам точный интерфейс POSIX или нет, так или иначе, в Википедии естьсписок альтернатив с открытым исходным кодом ...

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