StreamReader Peek()方法中断而不会引发异常

时间:2018-10-18 13:26:30

标签: c# stdin streamreader chrome-native-messaging

我有一个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()为什么会毫无例外地中断?

0 个答案:

没有答案