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.