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

Определение

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

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

Параметры

buffer
Byte[]

Буфер для чтения данных в.

offset
Int32

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

count
Int32

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

callback
AsyncCallback

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

state
Object

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

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

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

Исключения

buffer равно null.

offset или count отрицательный.

Предпринята попытка асинхронного чтения после конца потока.

Длина буфера минус offset меньше count.

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

Комментарии

В .NET Framework 4 и более ранних версиях необходимо использовать такие методы, как BeginRead асинхронные EndRead операции с файлами. Эти методы по-прежнему доступны в .NET Framework 4.5 для поддержки устаревшего кода; однако новые асинхронные методы, такие как ReadAsync, WriteAsyncи FlushAsync, помогают упростить асинхронные операции файлов.

EndWrite должен вызываться ровно один раз для каждого вызова BeginRead. Не удалось завершить процесс чтения, прежде чем начать другое чтение, может вызвать нежелательное поведение, например взаимоблокировку.

Замечание

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

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

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