BufferedStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Método

Definição

Inicia uma operação de leitura assíncrona. (Considere o uso de ReadAsync(Byte[], Int32, Int32, CancellationToken) em seu lugar.)

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

Parâmetros

buffer
Byte[]

O buffer para ler os dados.

offset
Int32

O deslocamento de bytes no buffer no qual será iniciada a gravação da leitura de dados no fluxo.

count
Int32

O número máximo de bytes a serem lidos.

callback
AsyncCallback

Um retorno de chamada assíncrono opcional, a ser chamado quando a leitura for concluída.

state
Object

Um objeto fornecido pelo usuário que distingue essa solicitação de leitura assíncrona específica de outras solicitações.

Retornos

Um objeto que representa a leitura assíncrona, que ainda pode estar pendente.

Exceções

buffer é null.

offset ou count é negativo.

Ocorreu uma tentativa de leitura assíncrona após o final do fluxo.

O tamanho do buffer menos offset é menor que count.

O fluxo atual não dá suporte à operação de leitura.

Comentários

No .NET Framework 4 e versões anteriores, você precisa usar métodos como BeginRead e EndRead para implementar operações de arquivo assíncronas. Esses métodos ainda estão disponíveis no .NET Framework 4.5 para dar suporte ao código herdado; no entanto, os novos métodos assíncronos, como ReadAsync, WriteAsynce FlushAsync, ajudam a implementar operações de arquivo assíncronas com mais facilidade.

EndWrite deve ser chamado exatamente uma vez para cada chamada para BeginRead. A falha ao encerrar um processo de leitura antes de iniciar outra leitura pode causar um comportamento indesejável, como deadlock.

Observação

Use a CanRead propriedade para determinar se a instância atual dá suporte à leitura.

EndRead deve ser chamado com isso IAsyncResult para descobrir quantos bytes foram lidos.

Aplica-se a