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

Definição

Inicia uma gravação assíncrona em um 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[]

Uma matriz de tipo Byte que contém os dados a serem gravados no NetworkStream.

offset
Int32

O local para buffer começar a enviar os dados.

size
Int32

O número de bytes a serem gravados no NetworkStream.

state
Object

Um objeto que contém dados adicionais definidos pelo usuário.

Retornos

Um IAsyncResult que representa a chamada assíncrona.

Exceções

O buffer parâmetro é null.

O offset parâmetro é menor que 0.

-ou-

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

-ou-

O size parâmetro é menor que 0.

-ou-

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

O subjacente Socket está fechado.

-ou-

Houve uma falha durante a gravação na rede.

-ou-

Erro ao acessar o soquete.

Comentários

Importante

Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin/End) para o novo desenvolvimento. Em vez disso, use os equivalentes baseados em tarefa.

Você pode passar um retorno de chamada que implementa AsyncCallback para BeginWrite ser notificado sobre a conclusão da operação. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada será executado embutido durante a chamada para BeginWrite. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida para true indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult objeto de estado passado para o BeginWrite método.

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

Note

Se você receber um IOException, verifique a InnerException propriedade para determinar se ela foi causada por um SocketException. Nesse caso, use a ErrorCode propriedade para obter o código de erro específico.

As operações de leitura e gravação podem ser executadas simultaneamente em uma instância da NetworkStream classe sem a necessidade de sincronização. Desde que haja um thread exclusivo para as operações de gravação e um thread exclusivo para as operações de leitura, não haverá nenhuma interferência cruzada entre threads de leitura e gravação e nenhuma sincronização é necessária.

Aplica-se a

Confira também