我有一个chrome本机消息传递主机应用程序,它可以从STDIN读取JSON消息并将数据写入STDOUT。
我现在面临的问题是StreamReader.Peek()
方法。
在第一次迭代调试中,它运行成功,但是在第二次迭代中,它在 reader.Peek()点中断,并且没有引发任何异常。
该控件无任何异常消失。
var length = 0;
var lengthBytes = new byte[4];
stdin.Read(lengthBytes, 0, 4);
length = BitConverter.ToInt32(lengthBytes, 0);
var messageBuffer = new char[length];
using (var reader = new StreamReader(stdin))
{
while (reader.Peek() >= 0)
{
reader.Read(messageBuffer, 0, messageBuffer.Length);
}
}
var message = new string(messageBuffer);
Log.Debug(message);
var jsonMessageObject = JsonConvert.DeserializeObject<JObject>(message);
if (jsonMessageObject == null)
{
return null;
}
即使可以完美地读取所有数据,有人可以帮忙知道怎么回事吗?
Peek()
为什么会毫无例外地中断?