NetworkStream.EndWrite(IAsyncResult) Método

Definição

Manipula o final de uma gravação assíncrona.

public:
 override void EndWrite(IAsyncResult ^ asyncResult);
public override void EndWrite (IAsyncResult asyncResult);
override this.EndWrite : IAsyncResult -> unit
Public Overrides Sub EndWrite (asyncResult As IAsyncResult)

Parâmetros

asyncResult
IAsyncResult

O IAsyncResult que representa a chamada assíncrona.

Exceções

O parâmetro asyncResult é null.

O Socket subjacente está fechado.

- ou - Ocorreu um erro ao gravar na rede.

- ou - Ocorreu um erro ao acessar o soquete.

Exemplos

No exemplo de código a seguir, myWriteCallback é fornecido BeginWrite como o método de retorno de chamada. EndWrite é implementado myWriteCallback para concluir a chamada de gravação assíncrona iniciada por BeginWrite.


// Example of EndWrite
static void myWriteCallBack( IAsyncResult^ ar )
{
   NetworkStream^ myNetworkStream = safe_cast<NetworkStream^>(ar->AsyncState);
   myNetworkStream->EndWrite( ar );
}
// Example of EndWrite
public static void myWriteCallBack(IAsyncResult ar){

     NetworkStream myNetworkStream = (NetworkStream)ar.AsyncState;
     myNetworkStream.EndWrite(ar);
}
' Example of EndWrite
Public Shared Sub myWriteCallBack(ar As IAsyncResult)
   
   Dim myNetworkStream As NetworkStream = CType(ar.AsyncState, NetworkStream)
   myNetworkStream.EndWrite(ar)
End Sub

Comentários

EndWrite conclui a operação de envio assíncrona iniciada em BeginWrite.

Antes de chamar BeginWrite, você precisa criar um método de retorno de chamada que implemente o AsyncCallback delegado. Esse método de retorno de chamada é executado em um thread separado e é chamado pelo sistema após BeginWrite o retorno. O método de retorno de chamada deve aceitar o IAsyncResult retornado do BeginWrite método como um parâmetro.

Dentro do método de retorno de chamada, chame a AsyncState propriedade do IAsyncResult parâmetro para obter o NetworkStream. Depois de obter o NetworkStreammétodo, você pode chamar o EndWrite método para concluir com êxito a operação de envio e retornar o número de bytes enviados.

O EndWrite método bloqueia até que o número solicitado de bytes seja enviado.

Observação

Se você receber uma 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 e consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.

Aplica-se a

Confira também