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

Definição

Inicia uma escrita assíncrona num fluxo.

public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int size, AsyncCallback callback, object state);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parâmetros

buffer
Byte[]

Um array de tipo Byte que contém os dados para escrever no NetworkStream.

offset
Int32

A localização para buffer começar a enviar os dados.

size
Int32

O número de bytes a escrever no NetworkStream.

callback
AsyncCallback

O AsyncCallback delegado que é executado quando BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) termina.

state
Object

Um objeto que contenha quaisquer dados adicionais definidos pelo utilizador.

Devoluções

E IAsyncResult que representa a chamada assíncrona.

Exceções

O buffer parâmetro é null.

O offset parâmetro é inferior a 0.

-ou-

O offset parâmetro é maior do que o comprimento de buffer.

-ou-

O size parâmetro é inferior a 0.

-ou-

O size parâmetro é maior do que o comprimento de buffer menos o valor do offset parâmetro.

O subjacente Socket é fechado.

-ou-

Houve uma falha ao escrever para a rede.

-ou-

Ocorreu um erro ao aceder ao soquete.

Observações

Importante

Isto é uma API de compatibilidade. Não recomendamos o uso dos métodos APM (Início/Fim) para novos desenvolvimentos. Em vez disso, use os equivalentes baseados em tarefas.

Pode enviar um callback que implementa AsyncCallback para BeginWrite ser notificado sobre a conclusão da operação. Note que, se a pilha de rede subjacente completar a operação de forma síncrona, o callback será executado em linha, durante a chamada para BeginWrite. Neste caso, a CompletedSynchronously propriedade no retorno IAsyncResult será definida para true indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade de para IAsyncResult obter o objeto de estado passado para o BeginWrite método.

A BeginWrite operação deve ser realizada chamando o EndWrite método. Normalmente, o método é invocado pelo delegado fornecido AsyncCallback . EndWrite irá bloquear o thread que chama até que a operação seja concluída.

Note

Se receber um IOException, verifique a InnerException propriedade para determinar se foi causado por um SocketException. Se sim, use a ErrorCode propriedade para obter o código de erro específico.

Operações de leitura e escrita podem ser realizadas simultaneamente numa instância da NetworkStream classe sem necessidade de sincronização. Desde que exista um thread único para as operações de escrita e um único para as operações de leitura, não haverá interferência cruzada entre threads de leitura e escrita e não será necessária sincronização.

Aplica-se a

Ver também