IOExtensionsReadExactAsync - метод
Выполняет асинхронное чтение указанного количества байт из потока в буфер.
Возвращает количество действительно прочитанных байт, которое может быть меньше указанного количества
только в том случае, если поток завершился.
Пространство имён: Tessa.Platform.IOСборка: Tessa (в Tessa.dll) Версия: 3.6.0.22
public static Task<int> ReadExactAsync(
this Stream stream,
byte[] buffer,
int index,
int count,
CancellationToken cancellationToken = default
)
<ExtensionAttribute>
Public Shared Function ReadExactAsync (
stream As Stream,
buffer As Byte(),
index As Integer,
count As Integer,
Optional cancellationToken As CancellationToken = Nothing
) As Task(Of Integer)
public:
[ExtensionAttribute]
static Task<int>^ ReadExactAsync(
Stream^ stream,
array<unsigned char>^ buffer,
int index,
int count,
CancellationToken cancellationToken = CancellationToken()
)
[<ExtensionAttribute>]
static member ReadExactAsync :
stream : Stream *
buffer : byte[] *
index : int *
count : int *
?cancellationToken : CancellationToken
(* Defaults:
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> Task<int>
- 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), этот метод всегда корректно обрабатывает ситуацию,
в которой в поток ещё не пришли все данные из внешнего источника (например, при передаче по сети).