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

Definição

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

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

Parâmetros

arraybuffer
Byte[]

O buffer para escrever dados.

offset
Int32

O deslocamento de bytes para começar a escrever.

count
Int32

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

asyncCallback
AsyncCallback

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

asyncState
Object

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

Devoluções

Um objeto que representa a operação de escrita assíncrona, que ainda pode estar pendente.

Exceções

O método tentava escrever assíncronamente para além do fim do fluxo, ou ocorria um erro no 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 DeflateStream não suporta a operação de escrita.

A operação de escrita não pode ser realizada porque o fluxo está fechado.

Observações

A partir do .NET Framework 4.5, pode realizar operações de escrita assíncronas usando o método WriteAsync. O BeginWrite 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 obter mais informações, consulte E/S de arquivo assíncrono.

Passe o IAsyncResult objeto devolvido pelo método atual para EndWrite garantir que a escrita é concluída e liberta recursos adequadamente. Pode fazer isto usando o mesmo código que chamou BeginWrite ou num callback passado para BeginWrite. Se ocorrer um erro durante uma operação de escrita assíncrona, uma exceção não será lançada até EndWrite ser chamada com o IAsyncResult retorno por este método.

Se um fluxo for escrivo, a escrita no final do fluxo expande o fluxo.

A posição atual no fluxo é atualizada quando se emite a operação de leitura ou escrita assíncrona, 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 CanWrite propriedade para determinar se o objeto atual DeflateStream suporta a escrita.

Se um fluxo estiver fechado ou se passar um argumento inválido, exceções são lançadas imediatamente a partir de BeginWrite. Erros que ocorrem durante um pedido de escrita 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 EndWrite.

Aplica-se a