Сбой метода StreamReader Peek () без исключения - PullRequest
0 голосов
/ 18 октября 2018

У меня есть приложение Chrome для обмена сообщениями, которое читает сообщения JSON из STDIN и записывает данные в 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() ломается без каких-либо исключений?

...