Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este exemplo anexa um manipulador ao evento de manipulador assíncrono de um serviço Web, para que ele possa recuperar o resultado de uma chamada de método assíncrono. Este exemplo usou o serviço Web DemoTemperatureService em http://www.xmethods.net.
Quando você faz referência a um serviço Web em seu projeto no IDE (Ambiente de Desenvolvimento Integrado) do Visual Studio, ele é adicionado ao My.WebServices objeto e o IDE gera uma classe proxy de cliente para acessar um serviço Web especificado
A classe proxy permite que você chame os métodos de serviço Web de forma síncrona, onde seu aplicativo aguarda a conclusão da função. Além disso, o proxy cria membros adicionais para ajudar a chamar o método de forma assíncrona. Para cada função de serviço Web, NameOfWebServiceFunction, o proxy cria uma sub-rotina NameOfWebServiceFunctionAsync , um evento NameOfWebServiceFunctionCompleted e uma classe NameOfWebServiceFunctionCompletedEventArgs . Este exemplo demonstra como usar os membros assíncronos para acessar a getTemp função do serviço Web DemoTemperatureService.
Observação
Esse código não funciona em aplicativos Web, pois ASP.NET não dá suporte ao My.WebServices objeto.
Chamar um serviço Web de forma assíncrona
Consulte o serviço Web DemoTemperatureService em
http://www.xmethods.net. O endereço éhttp://www.xmethods.net/sd/2001/DemoTemperatureService.wsdlAdicione um manipulador de eventos para o evento
getTempCompleted:Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End SubObservação
Você não pode usar a
Handlesinstrução para associar um manipulador de eventos aosMy.WebServiceseventos do objeto.Adicione um campo para acompanhar se o manipulador de eventos foi adicionado ao
getTempCompletedevento:Private handlerAttached As Boolean = FalseAdicione um método para adicionar o manipulador de eventos ao
getTempCompletedevento, se necessário, e para chamar ogetTempAsyncmétodo:Sub CallGetTempAsync(ByVal zipCode As Integer) If Not handlerAttached Then AddHandler My.WebServices. TemperatureService.getTempCompleted, AddressOf Me.TS_getTempCompleted handlerAttached = True End If My.WebServices.TemperatureService.getTempAsync(zipCode) End SubPara chamar o
getTempmétodo Web de forma assíncrona, chame oCallGetTempAsyncmétodo. Quando o método Web é concluído, seu valor retornado é passado para ogetTempCompletedHandlermanipulador de eventos.