我有一个非常简单的问题/问题。我想将0MQ用于一些非常基本的发布/订阅功能。我的订户应用程序是使用纯Winforms的基于Windows GUI的应用程序。

由于0MQ中似乎没有明确的引用来处理这种情况,我假设最坏的情况是,一旦0MQ线程收到任何订阅消息,我就必须在Windows GUI线程上使用BeginInvoke(...)。这似乎很简单,但是如果有人对解决此问题的最佳方式有任何见解/意见/建议,我将非常感谢。

提前致谢
大卫

最佳答案

对于WinForms应用程序中的ZeroMQ订阅者,您至少可以选择以下几种:


使用后台工作线程接收您的0MQ消息。收到消息后,将其传递给后台工作人员progressChanged事件以更新您的UI。
使用系统线程来接收消息并调用以更新您的UI。
关于SO的另一建议还建议使用系统线程在接收消息时将消息排队,并使用计时器事件使消息出队。如果使用了Forms Timer,则可以在不调用UI的情况下更新UI,或者,如果需要System Timer,则需要调用。


选择哪种方法取决于您的设计标准。

09-26 04:16