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

Definição

Inicia uma operação de leitura assíncrona. (Considere usar ReadAsync(Byte[], Int32, Int32, CancellationToken) em vez disso.)

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);
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 em buffer que começar a escrever dados lidos do fluxo.

count
Int32

O número máximo de bytes a ler.

callback
AsyncCallback

Um callback assíncrono opcional, a ser chamado quando a leitura estiver completa.

state
Object

Um objeto fornecido pelo utilizador que distingue este pedido de leitura assíncrono particular de outros pedidos.

Devoluções

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

Exceções

buffer é null.

offset ou count é negativo.

Tentei uma leitura assíncrona para além do final da transmissão.

O comprimento do buffer menos offset é menor que count.

O fluxo atual não suporta a operação de leitura.

Observações

No .NET Framework 4 e versões anteriores, é necessário usar métodos como BeginRead e EndRead para implementar operações de ficheiros assíncronas. Estes métodos ainda estão disponíveis no .NET Framework 4.5 para suportar código legado; no entanto, os novos métodos assíncronos, como ReadAsync, WriteAsync e FlushAsync, ajudam a implementar operações de ficheiros assíncronas mais facilmente.

EndWrite deve ser chamada exatamente uma vez por cada chamada para BeginRead. Não terminar um processo de leitura antes de iniciar outra leitura pode causar comportamentos indesejáveis, como deadlock.

Note

Use a CanRead propriedade para determinar se a instância atual suporta leitura.

EndRead Deve ser chamado com isto IAsyncResult para saber quantos bytes foram lidos.

Aplica-se a