DelegateReaderStream - конструктор

Создаёт экземпляр класса с указанием функции, загружающей данные для потока.

Definition

Пространство имён: Tessa.Platform.IO
Сборка: Tessa (в Tessa.dll) Версия: 4.0.4
C#
public DelegateReaderStream(
	long length,
	Func<int, CancellationToken, ValueTask<(byte[] , int actualSize)>> readAsyncFunc,
	Func<ValueTask>? endReadAsyncFunc = null,
	int bufferSize = 1000000
)

Параметры

length  Int64
Фактическая длина потока, которая будет прочитана. Поток сообщает это значение в качестве своего размера Length и не выполняет чтение за пределами этой величины. Если переданное значение меньше нуля, то считается, что размер потока неизвестен.
readAsyncFunc  FuncInt32, CancellationToken, ValueTaskValueTupleByte, Int32
Функция, выполняющая асинхронную загрузку данных для потока. Возвращает массив байт - буфер, и число - фактическое число прочитанных байт в буфере, которое было записано данными.
endReadAsyncFunc  FuncValueTask  (Optional)
Функция, вызываемая при закрытии потока, которая выполняет очистку ресурсов, в т.ч. асинхронную. Может быть равна null, если выполнять действия не требуется.
bufferSize  Int32  (Optional)
Размер буфера, который наполняется за один запрос к функции readAsyncFunc.

Исключения

ArgumentOutOfRangeExceptionРазмер буфера bufferSize не является положительным числом.

См. также