我无法理解 clrzmq (3.0.0 rc1) Socket.ReceiveReady 事件。在惯用的 C# 代码中,我希望注册一个事件处理程序,然后坐下来等待处理程序被调用:
socket.ReceiveReady += (o, e) => Console.WriteLine ("Success!");
但是,除非我也积极投票,否则永远不会引发此事件:
var poller = new Poller( new[] {socket} );
while (true) {
poller.Poll();
}
这对我来说完全违反直觉:我应该轮询(即使用基于拉的模型)或监听事件(即使用基于推的模型)。
那么,这真的是正确的方法,还是我错过了一些更简单的方法?