DeflateStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicia uma operação de gravação assíncrona. (Considere o uso do método WriteAsync(Byte[], Int32, Int32) em seu lugar.)
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ array, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ asyncCallback, System::Object ^ asyncState);
public override IAsyncResult BeginWrite (byte[] array, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback? asyncCallback, object? asyncState);
public override IAsyncResult BeginWrite (byte[] array, int offset, int count, AsyncCallback asyncCallback, object asyncState);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (array As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, count As Integer, asyncCallback As AsyncCallback, asyncState As Object) As IAsyncResult
Parâmetros
- arraybuffer
- Byte[]
O buffer do qual os dados serão gravados.
- offset
- Int32
O deslocamento de bytes do qual começar a gravar.
- count
- Int32
O número máximo de bytes a serem gravados.
- asyncCallback
- AsyncCallback
Um retorno de chamada assíncrono opcional, a ser chamado quando a operação de gravação for concluída.
- asyncState
- Object
Um objeto fornecido pelo usuário que distingue essa solicitação de gravação assíncrona específica de outras solicitações.
Retornos
Um objeto que representa a operação de gravação assíncrona, que ainda pode estar pendente.
Exceções
O método tentou fazer uma gravação 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 gravação.
A operação de gravação não pode ser realizada porque o fluxo está fechado.
Comentários
A partir do .NET Framework 4.5, você pode executar operações de gravação assíncronas usando o WriteAsync método . O BeginWrite 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 objeto retornado pelo método atual para para EndWrite garantir que a gravação seja concluída e libere os recursos adequadamente. Você pode fazer isso usando o mesmo código que chamou BeginWrite ou em um retorno de chamada passado para BeginWrite. Se ocorrer um erro durante uma operação de gravação assíncrona, uma exceção não será gerada até EndWrite que seja chamada com o IAsyncResult retornado por esse método.
Se um fluxo for gravável, gravar no final do fluxo expandirá o fluxo.
A posição atual no fluxo é atualizada quando você emite a operação assíncrona de leitura ou gravação, 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 CanWrite propriedade para determinar se o objeto atual DeflateStream dá suporte à gravação.
Se um fluxo for fechado ou você passar um argumento inválido, as exceções serão lançadas imediatamente de BeginWrite. Erros que ocorrem durante uma solicitação de gravação 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 EndWrite.