我已经开始探索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
。
知道我做错了吗?
答案 0 :(得分:2)
首先尝试使用版本3.3.0.12-rc1,它修复了很多问题,可能也是您遇到的问题。
关于do_something,我建议使用NetMQTimer而不是PollOnce(改为使用PollTillCanceled)。您也可以使用NetMQScheduler来做一些事情。