2015-01-28 2 views
0

Я начал изучать NetMQ 3.3.0.11 и столкнулся с проблемой с использованием Poller.Socket.ReceiveReady не уволен, несмотря на доступные сообщения

Я пытаюсь добиться, чтобы опрос опрошенных в течение примерно 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.

Любая идея, что я делаю неправильно?

ответ

2

Сначала попробуйте работать с версией 3.3.0.12-rc1, он исправляет множество проблем, возможно, и того, с которым вы страдаете.

Также относительно do_something я предлагаю работать с NetMQTimer вместо PollOnce (вместо этого используйте PollTillCanceled). Вы также можете использовать NetMQScheduler для того, чтобы что-то делать.

Смежные вопросы