Como: Chamar um serviço Web de forma assíncrona (Visual Basic)
Este exemplo anexa um manipulador assíncrono de manipulador de eventos com de um serviço Web, para que ele possa recuperar o resultado de uma chamada de método assíncrono. Este exemplo usado o serviço da DemoTemperatureService Web no http://www.xmethods. NET.
Ao fazer referência a um serviço da Web em seu projeto no Ambiente de Desenvolvimento Integrado (IDE) do Visual Studio, ele é adicionado ao objeto My.WebServices, e o IDE gera um cliente da classe proxy para acessar um serviço da Web especificado.
A classe proxy permite que você chame os métodos do serviço da Web de forma síncrona, onde o aplicativo aguarda a função para concluir. Além disso, o proxy cria membros adicionais para ajudar a chamar o método de forma assíncrona. Para cada função 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 função getTemp do serviço da Web DemoTemperatureService.
Observação |
---|
Este código não funciona em aplicativos da Web, porque o ASP.NET não oferece suporte para o objeto My.WebServices. |
Chamar um serviço da Web de forma assíncrona
Referência de serviço da DemoTemperatureService Web no http://www.xmethods. NET. O endereço é
http://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
Adicione 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 Sub
Observação Você não pode usar a instrução Handles para associar um manipulador de eventos com eventos do objeto My.WebServices.
Adicione um campo para controlar se o manipulador de eventos tiver sido adicionado ao evento getTempCompleted:
Private handlerAttached As Boolean = False
Adicione um método para adicionar o manipulador de eventos para o evento getTempCompleted, se necessário, e para chamar o método getTempAsynch:
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 Sub
Para chamar o método de Web getTemp de forma assíncrona, chame o método CallGetTempAsync. Quando o método de Web terminar, seu valor de retorno é passado para o manipulador de eventos getTempCompletedHandler.
Consulte também
Referência
Objeto My.WebServices (Visual Basic)