【发布时间】:2016-07-10 12:28:51
【问题描述】:
我正在使用 NetMQ 进行进程间数据通信。
我在 .Net 4.5 上使用 NuGet 包版本 3.3.2.2
我想从一个字符串创建一个简单的消息并通过RequestSocket 发送它。
我不断收到System.ArgumentNullException,尽管在任何时候都没有实例为空。
我的自包含代码:
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!
}
【问题讨论】:
-
这是因为您的
clientMessage已初始化但由于InitEmpty()而没有任何MsgType。 -
@diiN_ 你建议如何初始化它?
-
通过使用
InitPool或InitGC(看看 Guy 的回答)。
标签: c# .net exception zeromq netmq