Бөлісу құралы:


GZipStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Метод

Определение

Начинает асинхронную операцию чтения. (Вместо этого рекомендуется использовать ReadAsync(Byte[], Int32, Int32) метод.)

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginRead(byte[] array, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginRead(byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Public Overrides Function BeginRead (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Параметры

arraybuffer
Byte[]

Массив байтов для чтения данных.

offset
Int32

Смещение байтов, с которого начинается чтение данных из потока.

count
Int32

Максимальное число байтов для чтения.

asyncCallback
AsyncCallback

Необязательный асинхронный обратный вызов, который необходимо вызвать при завершении операции чтения.

asyncState
Object

Предоставленный пользователем объект, который отличает этот конкретный асинхронный запрос на чтение от других запросов.

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

Объект, представляющий асинхронную операцию чтения, которая по-прежнему может находиться в состоянии ожидания.

Исключения

Метод пытался асинхронно считывать после конца потока или произошла ошибка диска.

Один или несколько аргументов являются недопустимыми.

Методы были вызваны после закрытия потока.

Текущая GZipStream реализация не поддерживает операцию чтения.

Невозможно выполнить операцию чтения, так как поток закрыт.

Комментарии

Это важно

Начиная с .NET 6 этот метод может не считывать столько байтов, сколько было запрошено. Дополнительные сведения см. в разделе "Частичные и нулевые байты" в DeflateStream, GZipStream и CryptoStream.

Начиная с .NET Framework 4.5, можно выполнять асинхронные операции чтения с помощью Stream.ReadAsync метода. Метод BeginRead по-прежнему доступен в текущих версиях для поддержки устаревшего кода, однако можно реализовать асинхронные операции ввода-вывода с помощью новых асинхронных методов. Дополнительные сведения см. в статье "Асинхронный ввод-вывод файла".

IAsyncResult Передайте возвращаемое значение методу EndRead потока, чтобы определить, сколько байтов было считывано и чтобы освободить ресурсы операционной системы, используемые для чтения. Это можно сделать с помощью того же кода, который вызывается BeginRead или в обратном BeginReadвызове.

Текущая позиция в потоке обновляется при выпуске асинхронного чтения или записи, а не после завершения операции ввода-вывода.

Несколько одновременных асинхронных запросов отображают неопределенный порядок завершения запроса.

CanRead Используйте свойство, чтобы определить, поддерживает ли текущий GZipStream объект чтение.

Если поток закрыт или передается недопустимый аргумент, исключения возникают немедленно BeginRead. Ошибки, возникающие во время асинхронного запроса на чтение, например сбой диска во время запроса ввода-вывода, возникают в потоке пула потоков и вызывают исключения при вызове EndRead.

Применяется к