Как подписаться на очередь в msmq с помощью С#. Предполагая, что у меня есть клиент в качестве формы выигрыша, и я хотел бы подписаться на очередь, каждый раз, когда в очередь поступает сообщение, я хотел бы, чтобы форма была уведомлена об этом. Любой пример. Спасибо
подписаться на мсмк
Ответы (4)
Вы также можете использовать WCF для подписки на сообщения из очереди MSMQ и обработки их как метода службы в службе WCF.
Проверить
- Как обмениваться сообщениями с конечными точками WCF и приложениями очереди сообщений
- WCF и MSMQ
- Пример начального проекта с WCF и MSMQ
- SOA-интеграция MSMQ с WCF (и почему это того стоит)
Вам нужно посмотреть типы в пространстве имен System.Messaging
.
Существует полная асинхронная поддержка, поэтому вы можете ждать прибытия сообщения, не останавливая свой пользовательский интерфейс (но вам нужно будет использовать Control.BeginInvoke
для обратного вызова в ваш пользовательский интерфейс, как обычно для асинхронных действий в WinForms).
MSDN имеет множество примеров, например. получения асинхронного получения сообщения.
Почему бы не взглянуть на NServiceBus?
Это очень стабильная и зрелая платформа, построенная на MSMQ и имеющая pub/sub прямо из коробки. С ним очень легко начать, и вам не нужно пачкать руки с WCF!
Как было предложено @marc_s, вы можете использовать службу WCF, которая может использовать привязку NetMSMQ или MSMQIntegrated для подписки на сообщения в MSMQ.
Если вы не хотите вводить службу WCF между приложением Winforms и MSMQ, вам потребуется создать механизм опроса для проверки в MSMQ поступления новых сообщений.