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

Definição

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

public:
 override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::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
Public Overrides Function BeginRead (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult

Parâmetros

arraybuffer
Byte[]

O array de bytes para ler os dados.

offset
Int32

O deslocamento de bytes a partir do qual começar a ler dados do fluxo.

count
Int32

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

asyncCallback
AsyncCallback

Um callback assíncrono opcional, a ser chamado quando a operação de leitura estiver concluída.

asyncState
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 operação de leitura assíncrona, que ainda pode estar pendente.

Exceções

O método tentou ler assíncronamente para além do fim do fluxo, ou ocorreu um erro de disco.

Um ou mais dos argumentos são inválidos.

Os métodos foram chamados após o encerramento do riacho.

A implementação atual GZipStream não suporta a operação de leitura.

Uma operação de leitura não pode ser realizada porque o fluxo está fechado.

Observações

Importante

A partir do .NET 6, este método pode não ler tantos bytes quanto os solicitados. Para mais informações, consulte Leituras parciais e de zero bytes no DeflateStream, GZipStream e CryptoStream.

A partir do .NET Framework 4.5, pode realizar operações de leitura assíncronas usando o método Stream.ReadAsync. O BeginRead método ainda está disponível nas versões atuais para suportar código antigo; no entanto, pode implementar operações de I/O assíncronas mais facilmente usando os novos métodos assíncronos. Para mais informações, consulte I/O de ficheiros assíncronos.

Passar o IAsyncResult valor de retorno ao EndRead método do fluxo para determinar quantos bytes foram lidos e libertar os recursos do sistema operativo usados para leitura. Pode fazer isto usando o mesmo código que chamou BeginRead ou num callback passado para BeginRead.

A posição atual no fluxo é atualizada quando a leitura ou escrita assíncrona é emitida, não quando a operação de I/O termina.

Múltiplos pedidos assíncronos simultâneos tornam a ordem de conclusão do pedido incerta.

Use a CanRead propriedade para determinar se o objeto atual GZipStream suporta leitura.

Se um fluxo estiver fechado ou se passar um argumento inválido, exceções são lançadas imediatamente a partir de BeginRead. Erros que ocorrem durante um pedido de leitura assíncrono, como uma falha de disco durante o pedido de E/S, ocorrem no thread pool de threads e lançam exceções ao chamar EndRead.

Aplica-se a