DeflateStream.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[] buffer, 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
Параметры
- bufferarray
- Byte[]
Массив байтов, в который следует считывать данные.
- offset
- Int32
Смещение в байтах, с которого начинается чтение данных из потока.
- count
- Int32
Максимальное число байтов, предназначенных для чтения.
- asyncCallback
- AsyncCallback
Дополнительный асинхронный ответный вызов по завершении операции чтения.
- asyncState
- Object
Предоставляемый пользователем объект, являющийся отличительным признаком данного конкретного запроса на асинхронное чтение от других запросов.
Возвращаемое значение
Объект, представляющий асинхронную операцию чтения, которая может все еще быть отложена.
Исключения
Метод пытался в асинхронном режиме выполнить чтение за пределами потока, или произошла ошибка диска.
Один или несколько аргументов являются недопустимыми.
Методы были вызваны после закрытия потока.
Текущая реализация класса DeflateStream не поддерживает операцию чтения.
Этот вызов не может быть завершен.
Комментарии
Важно!
Начиная с .NET 6, этот метод может считывать не столько байтов, сколько было запрошено. Дополнительные сведения см. в разделе Частичные и нулевые операции чтения в DeflateStream, GZipStream и CryptoStream.
Начиная с платформа .NET Framework 4.5, асинхронные операции чтения можно выполнять с помощью ReadAsync метода . Метод BeginRead по-прежнему доступен в текущих версиях для поддержки устаревшего кода, однако вы можете легко реализовать асинхронные операции ввода-вывода с помощью новых асинхронных методов. Дополнительные сведения см. в разделе Асинхронный файловый ввод-вывод.
Передайте возвращаемое IAsyncResult значение методу EndRead потока, чтобы определить, сколько байтов было прочитано, и освободить ресурсы операционной системы, используемые для чтения. Это можно сделать с помощью того же кода, который вызвал BeginRead , или в обратном вызове, переданном в BeginRead.
Текущая позиция в потоке обновляется при выполнении асинхронной операции чтения или записи, а не после завершения операции ввода-вывода.
Несколько одновременных асинхронных запросов делают порядок завершения запроса неопределенным.
Используйте свойство , CanRead чтобы определить, поддерживает ли текущий DeflateStream объект чтение.
Если поток закрыт или вы передаете недопустимый аргумент, исключения немедленно создаются из BeginRead. Ошибки, возникающие во время асинхронного запроса на чтение, такие как сбой диска во время запроса ввода-вывода, возникают в потоке пула потоков и вызывают исключения при вызове EndRead.