NetworkStream.EndWrite(IAsyncResult) 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.
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.
O NetworkStream está fechado.
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.