0

我已经开始探索 NetMQ 3.3.0.11 并遇到了使用 Poller 的问题。

我试图实现轮询器轮询大约 1 秒,然后停止并允许在它恢复轮询 1 秒之前完成其他操作,依此类推。

我有以下代码:

var poller = new Poller (client) { PollTimeout = 10 };

while (true)
{                    
    for (var poll = 0; poll < 100; poll++)
    {
       poller.PollOnce ();
    }

    do_something;
}

我面临的问题是,在轮询期间,即使准备好接收消息,也不会触发 Client.ReceiveReady 事件。并提出了一个InvalidOperationException陈述Poller is started

知道我做错了什么吗?

4

1 回答 1

2

首先尝试使用3.3.0.12-rc1版本,它修复了很多问题,可能也是您遇到的问题。

另外关于 do_something,我建议使用NetMQTimer而不是 PollOnce(使用 PollTillCanceled 代替)。你也可以使用 NetMQScheduler 来做一些事情。

于 2015-01-28T15:01:17.817 回答