Как уже указывалось, есть несколько способов подключить ZeroMq к приложению WinForms.Это действительно не сильно отличается от использования ZeroMq и C # в других настройках, как в консольном приложении.Основное различие заключается в том, что вы указываете на то, что вы должны помещать сообщения в поток Gui, чтобы обновить элементы управления Gui.
Пример использования отдельного потока + очереди (шаблон производитель / потребитель) может бытьможно найти здесь: Примеры zeromq pub / sub с C # winform
Другим способом может быть использование (снова) отдельного потока для выполнения работы ZeroMq и установки события, которое запускается каждый раз.время получения сообщения.Затем Gui может подключить обработчик событий и обработать сообщение.Вы, конечно, также должны вызывать любые обновления в Gui.Недостатком этого подхода является то, что обработка событий будет немного мешать потоку обработчика ZeroMq, особенно если обновления Gui занимают некоторое время, и если вы получаете много данных.
Все решения имеют свои плюсы и минусы, все зависит от того, как выглядит ваша конкретная проблемная область.В целом, интеграция ZeroMq в приложение на C #, будь то WinForms или другое, является IMO довольно простой.Оболочка clrzmq хорошо написана и проста в использовании.Проблемы, с которыми вы можете столкнуться, в большей степени связаны с ограниченной обратной связью по ошибкам в самом ZeroMq.Если вы столкнетесь со странными сбоями;попробуйте запустить ту же логику в консольном приложении, что даст вам лучшие сообщения об ошибках.