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 이벤트는 메시지를 포착 할 준비가 있더라도 해고되지 않는 것입니다 :

나는 다음과 같은 코드가 있습니다. 그리고 Poller is started이라고하는 InvalidOperationException이 발생합니다.

내가 뭘 잘못하고 있는지 아는 사람이 있습니까?

답변

2

먼저 3.3.0.12-rc1 버전으로 작업을 시도하십시오. 문제가 많으며 해결해야 할 문제 일 수도 있습니다.

또한 do_something에 관해서는 PollOnce 대신 NetMQTimer으로 작업하는 것이 좋습니다 (대신 PollTillCanceled 사용). 뭔가 할 일에 NetMQScheduler를 사용할 수도 있습니다.

관련 문제