首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZeroMQ接收-在发行版中编译时状态中断

ZeroMQ接收-在发行版中编译时状态中断
EN

Stack Overflow用户
提问于 2015-04-18 05:31:23
回答 1查看 37关注 0票数 0

我们在VB.NET下使用ZeroMQ进行测试,在使用发布/订阅套接字时有一个奇怪的效果。当我们在调试模式下编译时,一切都运行得很好。在发布时,子程序员会得到一个socket.Receivestatus=Interrupted。代码片段:

代码语言:javascript
复制
    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)
....

就我们现在所能看到的,它与每条消息的长度有关;如果它很小(<100字节),一切都在Debug & Release-Mode下工作。如果我们假设每条消息有2000个字节,那么只收到137条消息,然后就会出现错误。

我们通过NuGet (package id="clrzmq“version="3.0.0-rc1")安装了ZeroMQ。我们检查了32位和64位-相同的行为。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-04-18 16:05:09

我想我发现了:你必须关闭项目-设置...编译...高级选项下的“优化”-Checkbox。在那次更改之后,一切都运行得很好。

我的建议:行为将在未来的ZeroMQ版本中修复,就像有人忘记禁用此选项一样,系统将在测试(调试)-Conditions下工作,但在实时(发布)中失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29709698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档