IOExtensionsReadExactAsync - метод

Выполняет асинхронное чтение указанного количества байт из потока в буфер. Возвращает количество действительно прочитанных байт, которое может быть меньше указанного количества только в том случае, если поток завершился.

Definition

Пространство имён: Tessa.Platform.IO
Сборка: Tessa (в Tessa.dll) Версия: 3.6.0.22
C#
public static Task<int> ReadExactAsync(
	this Stream stream,
	byte[] buffer,
	int index,
	int count,
	CancellationToken cancellationToken = default
)

Параметры

stream  Stream
Поток, из которого выполняется чтение данных.
buffer  Byte
Буфер, в который записываются прочитанные данные, начиная с индекса index.
index  Int32
Отсчитываемый от нуля индекс, начиная с которого данные записываются в buffer.
count  Int32
Количество байт, которое следует прочитать из потока.
cancellationToken  CancellationToken  (Optional)
Объект, посредством которого можно отменить асинхронную задачу.

Возвращаемое значение

TaskInt32
Количество действительно прочитанных байт. Может быть меньше count, если поток завершился раньше, чем данные были прочитаны.

Примечание об использовании

В Visual Basic и C# этот метод можно вызывать как метод экземпляра для любого объекта типа Stream. При вызове метода для экземпляра следует опускать первый параметр. Дополнительные сведения см. в разделе Методы расширения (Visual Basic) или Методы расширения (Руководство по программированию в C#).

Заметки

В отличие от метода Read(Byte, Int32, Int32), этот метод всегда корректно обрабатывает ситуацию, в которой в поток ещё не пришли все данные из внешнего источника (например, при передаче по сети).

См. также