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 に関しては、PollOnce の代わりに NetMQTimer を使用することをお勧めします(代わりに PollTillCanceled を使用します)。何かを行うために NetMQScheduler を使用することもできます。

于 2015-01-28T15:01:17.817 に答える