首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.ArgumentNullException与NetMQ.Msg.Put()

System.ArgumentNullException与NetMQ.Msg.Put()
EN

Stack Overflow用户
提问于 2016-03-23 09:33:58
回答 1查看 189关注 0票数 4

我正在使用NetMQ进行进程间数据通信.

我在NuGet 4.5上使用的是3.3.2.2版的.Net软件包

我想从一个字符串创建一个简单的消息,并通过一个RequestSocket发送它。

我一直得到System.ArgumentNullException,尽管非实例在任何一点上都是空的。

我自己包含的代码:

代码语言:javascript
复制
static void Main(string[] args)
{
    string exampleString = "hello, world";

    byte[] bytes = new byte[exampleString.Length * sizeof(char)];
    if (bytes == null)
    {
        return;
    }

    System.Buffer.BlockCopy(exampleString.ToCharArray(), 0, bytes, 0, bytes.Length);

    var clientMessage = new NetMQ.Msg();
    clientMessage.InitEmpty();

    if (!clientMessage.IsInitialised)
    {
        return;
    }

    clientMessage.Put(bytes, 0, bytes.Length); //throws exception!

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-23 09:56:08

当您调用Put时,它调用Buffer.BlockCopy(src, 0, Data, i, len);

来自github

代码语言:javascript
复制
public void Put([CanBeNull] byte[] src, int i, int len)
{
    if (len == 0 || src == null)
        return;

    Buffer.BlockCopy(src, 0, Data, i, len);
}

在这一点上,DatanullBuffer.BlockCopy抛出ArgumentNullException

尝试通过调用InitPoolInitGC来使其无效。

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

https://stackoverflow.com/questions/36174377

复制
相关文章

相似问题

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