Асинхронный метод BeginRead

177
29 ноября 2018, 09:00

У меня есть код синхронного чтения данных из потока. В бесконечном цикле идет прослушка:

    while (alive_tcp)
    {
        byte[] messageLenBytes = ReceiveSync(4); // получили длину
        int messageLen = BitConverter.ToInt32(messageLenBytes, 0); // сконвертировали в число
        byte[] buffer = ReceiveSync(messageLen); // получили полное сообщение
        StringBuilder builder = new StringBuilder();
        builder.Append(Encoding.Unicode.GetString(buffer, 0, buffer.Length));
        string message = builder.ToString();
    }

Метод ReceiveSync:

private byte[] ReceiveSync(int nBytesExact) 
{
    byte[] buf = new byte[nBytesExact];
    int readpos = 0;
    while (readpos < nBytesExact)
    {
       try
       {
           int actuallyRead = stream.Read(buf, readpos, nBytesExact - readpos);
           if (actuallyRead == 0)
               throw new System.IO.EndOfStreamException();
           readpos += actuallyRead;
       }
       catch 
        return buf;
    }
}

Хочу сделать чтение асинхронным с помощью BeginRead, но никак не пойму как получить результат чтения отталкиваясь от моего кода. Нужен ли бесконечный цикл вообще? Знаю что BeginRead устарел, но пишу под netframework 4.0. Может посоветуете другую реализацию.

READ ALSO
Показать (реализацию) каждый 5 уровень

Показать (реализацию) каждый 5 уровень

Задача: начиная с 27 уровня, каждый 5 раз, выводить некую реализацию, как такое реализовать ?

163
Использование Source и Path одновременно при Binding

Использование Source и Path одновременно при Binding

Имеется конвертер, который принимает некоторый объект и проанализировав его свойства возвращает объект VisiabilityОднако обновление должно...

143
C# WPF Анимация отдельных точек Polygon

C# WPF Анимация отдельных точек Polygon

Всем приветЕсть элемент класса Polygon, у него есть 4 точки, две из которых необходимо анимированно переместить

188
Чтение файла xml на сервере

Чтение файла xml на сервере

Есть сервер на шаблоне web API (asp) (файл конфигурации json)Мне необходимо загрузить файл в формате xml на сервер и прочитать данные из него

195