Partilhar via


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

Definição

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

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

Parâmetros

bufferarray
Byte[]

A matriz de bytes na qual os dados serão lidos.

offset
Int32

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

count
Int32

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

asyncCallback
AsyncCallback

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

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

Exceções

O método tentou fazer uma leitura assíncrona após o final do fluxo ou ocorreu um erro de disco.

Um ou mais argumentos são inválidos.

Foram chamados métodos depois que o fluxo foi fechado.

A implementação DeflateStream atual não dá suporte à operação de leitura.

Essa chamada não pode ser concluída.

Comentários

Importante

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

A partir do .NET Framework 4.5, você pode executar operações de leitura assíncronas usando o ReadAsync método . O BeginRead método ainda está disponível nas versões atuais para dar suporte ao código herdado; no entanto, você pode implementar operações de E/S assíncronas com mais facilidade usando os novos métodos assíncronos. Para saber mais, confira E/S de arquivo assíncrona.

Passe o IAsyncResult valor retornado para o EndRead método do fluxo para determinar quantos bytes foram lidos e liberar recursos do sistema operacional usados para leitura. Você pode fazer isso usando o mesmo código que chamou BeginRead ou em um retorno de chamada passado para BeginRead.

A posição atual no fluxo é atualizada quando a operação de leitura ou gravação assíncrona é emitida, não quando a operação de E/S é concluída.

Várias solicitações assíncronas simultâneas tornam a ordem de conclusão da solicitação incerta.

Use a CanRead propriedade para determinar se o objeto atual DeflateStream dá suporte à leitura.

Se um fluxo for fechado ou você passar um argumento inválido, as exceções serão lançadas imediatamente de BeginRead. Erros que ocorrem durante uma solicitação de leitura assíncrona, como uma falha de disco durante a solicitação de E/S, ocorrem no thread do pool de threads e geram exceções ao chamar EndRead.

Aplica-se a