Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este ejemplo se asocia un controlador al evento de controlador asincrónico de un servicio web, de modo que pueda recuperar el resultado de una llamada de método asincrónico. En este ejemplo se usó el servicio web DemoTemperatureService en http://www.xmethods.net
.
Cuando se hace referencia a un servicio web en el proyecto en el entorno de desarrollo integrado (IDE) de Visual Studio, se agrega al My.WebServices
objeto y el IDE genera una clase de proxy de cliente para acceder a un servicio web especificado.
La clase de proxy permite llamar a los métodos de servicio web de forma sincrónica, donde la aplicación espera a que se complete la función. El proxy crea además otros miembros para ayudar a llamar al método asincrónicamente. Para cada función de servicio web, NameOfWebServiceFunction, el proxy crea una subrutina NameOfWebServiceFunctionAsync
, un evento NameOfWebServiceFunction y una clase Completed
CompletedEventArgs
. En este ejemplo se muestra cómo usar los miembros asincrónicos para acceder a la getTemp
función del servicio web DemoTemperatureService.
Nota:
Este código no funciona en aplicaciones web, ya que ASP.NET no admite el My.WebServices
objeto .
Llamada a un servicio web de forma asincrónica
Haga referencia al servicio web DemoTemperatureService en
http://www.xmethods.net
. La dirección eshttp://www.xmethods.net/sd/2001/DemoTemperatureService.wsdl
Agregue un controlador de eventos para el
getTempCompleted
evento:Private Sub getTempCompletedHandler(ByVal sender As Object, ByVal e As net.xmethods.www.getTempCompletedEventArgs) MsgBox("Temperature: " & e.Result) End Sub
Nota:
No se puede usar la
Handles
instrucción para asociar un controlador de eventos a losMy.WebServices
eventos del objeto.Agregue un campo para realizar un seguimiento si el controlador de eventos se ha agregado al
getTempCompleted
evento:Private handlerAttached As Boolean = False
Agregue un método para agregar el controlador de eventos al
getTempCompleted
evento, si es necesario, y para llamar algetTempAsync
mé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 Sub
Llame al método
getTemp
para llamar al método webCallGetTempAsync
asincrónicamente. Cuando finaliza el método Web, su valor devuelto se pasa al controlador degetTempCompletedHandler
eventos.