Вход на сайт
Непонятно с async-await в C# - 2
1777 просмотров
Перейти к просмотру всей ветки
в ответ AlexNek 04.09.21 10:35, Последний раз изменено 04.09.21 11:36 (alex445)
Ну закон сохранения энергии и тут работает.
Т.е. вы согласны с моей идеей, что при таком подходе к списку можно без синхронизаций и блокировок обойтись?
А теперь тоже самое, но с маленьким дополнением: количество элементов массива-буфера не должно превышать N.
Так я и так не читаю больше, чем dataReadSize.
Если из потока, то я считывал так - здесь буфер каждый раз разной длины:
while (_doWork) { Thread.Sleep(30); // to not keep the thread busy all time, and to allow TcpClient accumulate sufficient amount of data if (_client.Available > 0) { _buffer = new byte[_client.Available]; // _client is of type TcpClient _stream.Read(_buffer, 0, _buffer.Length); // _stream is of type NetworkStream RawData.AddRange(_buffer); // RawData is of type List<byte> } }