IOExtensionsReadExactAsync - метод |
Выполняет асинхронное чтение указанного количества байт из потока в буфер.
Возвращает количество действительно прочитанных байт, которое может быть меньше указанного количества
только в том случае, если поток завершился.
Пространство имён:
Tessa.Platform.IO
Сборка:
Tessa (в Tessa.dll) Версия: 3.5.0.19
Синтаксис 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
- Тип: System.IOStream
Поток, из которого выполняется чтение данных. - buffer
- Тип: SystemByte
Буфер, в который записываются прочитанные данные, начиная с индекса index.
- index
- Тип: SystemInt32
Отсчитываемый от нуля индекс, начиная с которого данные записываются в buffer.
- count
- Тип: SystemInt32
Количество байт, которое следует прочитать из потока. - cancellationToken (Optional)
- Тип: System.ThreadingCancellationToken
Объект, посредством которого можно отменить асинхронную задачу.
Возвращаемое значение
Тип:
TaskInt32
Количество действительно прочитанных байт. Может быть меньше
count,
если поток завершился раньше, чем данные были прочитаны.
Примечание об использовании
В Visual Basic и C# этот метод можно вызывать как метод экземпляра для любого объекта типа
Stream. При вызове метода для экземпляра следует опускать первый параметр. Дополнительные сведения см. в разделе
Методы расширения (Visual Basic) или
Методы расширения (Руководство по программированию в C#).
Заметки
В отличие от метода
Read(Byte, Int32, Int32), этот метод всегда корректно обрабатывает ситуацию,
в которой в поток ещё не пришли все данные из внешнего источника (например, при передаче по сети).
См. также