【发布时间】:2015-04-18 16:05:09
【问题描述】:
我们在 VB.NET 下使用 ZeroMQ 进行测试,在使用 PUB/SUB 套接字时会产生奇怪的效果。当我们在调试模式下编译时,一切正常。在 Release 中,SUB-Programm 得到一个 socket.Receivestatus=Interrupted。代码片段:
Dim context = ZmqContext.Create
Dim socket = context.CreateSocket(SocketType.SUB)
socket.SubscribeAll()
socket.Connect("tcp://127.0.0.1:5550")
socket.ReceiveTimeout = TimeSpan.FromMilliseconds(1000)
socket.ReceiveHighWatermark = 1000
Console.WriteLine("Listening...")
While True
Dim msg As String
msg = socket.Receive(Encoding.Unicode)
Select Case socket.ReceiveStatus
Case ReceiveStatus.Interrupted
Console.WriteLine("Status={0}", socket.ReceiveStatus)
....
目前我们可以看到,它与每条消息的长度有关;如果它很小(
我们通过 NuGet 安装了 ZeroMQ(包 id="clrzmq" version="3.0.0-rc1")。我们检查了 32 位和 64 位 - 相同的行为。
有什么想法吗?
【问题讨论】: