BufferedStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.