IOExtensionsReadExactAsync - метод
Выполняет асинхронное чтение указанного количества байт из потока в буфер.
В результате выполнения метода либо буфер должен быть заполнен, либо поток завершился раньше, чем данные были прочитаны.
Возвращает количество действительно прочитанных байт, которое может быть меньше указанного количества
только в том случае, если поток завершился.
Пространство имён: Tessa.Platform.IOСборка: Tessa (в Tessa.dll) Версия: 4.0.4
public static ValueTask<int> ReadExactAsync(
this Stream stream,
Memory<byte> buffer,
CancellationToken cancellationToken = default
)
<ExtensionAttribute>
Public Shared Function ReadExactAsync (
stream As Stream,
buffer As Memory(Of Byte),
Optional cancellationToken As CancellationToken = Nothing
) As ValueTask(Of Integer)
public:
[ExtensionAttribute]
static ValueTask<int> ReadExactAsync(
Stream^ stream,
Memory<unsigned char> buffer,
CancellationToken cancellationToken = CancellationToken()
)
[<ExtensionAttribute>]
static member ReadExactAsync :
stream : Stream *
buffer : Memory<byte> *
?cancellationToken : CancellationToken
(* Defaults:
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> ValueTask<int>
- stream Stream
- Поток, из которого выполняется чтение данных.
- buffer MemoryByte
- Буфер, в который записываются прочитанные данные.
- cancellationToken CancellationToken (Optional)
- Объект, посредством которого можно отменить асинхронную задачу.
ValueTaskInt32
Количество действительно прочитанных байт. Может быть меньше размера
buffer,
если поток завершился раньше, чем данные были прочитаны.
В Visual Basic и C# этот метод можно вызывать как метод экземпляра для любого объекта типа
Stream. При вызове метода для экземпляра следует опускать первый параметр. Дополнительные сведения см. в разделе
Методы расширения (Visual Basic) или
Методы расширения (Руководство по программированию в C#).
В отличие от метода ReadAsync(MemoryByte, CancellationToken), этот метод всегда корректно обрабатывает ситуацию,
в которой в поток ещё не пришли все данные из внешнего источника (например, при передаче по сети).