Como llamar a un servicio web en segundo plano

Iniciado por franbo, 20 Enero 2008, 19:13 PM

0 Miembros y 1 Visitante están viendo este tema.

franbo

Tengo una aplicación de escritorio que utiliza varios servicios web xml. Va muy bien, pero mientras se llama al servicio, el formulario queda bloquedao y hace cosas raras. ¿Se puede llamar a un servicio web en segundo plano?, es decir que el formulario siga funcionando mientras espera la respuesta del servicio web. Se que se puede hacer porque lo he visto en otras aplicaciones.

k.lopera

Lo que tu llamas en segundo plano, viene a ser una llamada asincrona. Es decir, que dedicas un hilo secundario a la llamada web, mientras que el hilo principal sigue atendiendo a la interacción del usuario con el formulario.

Para hacer una llamada asincrona a un servicio web, lo tienes muy facil porque el proxy que te crea en tu apliacion de escritorio ya incorpora una interface para llamadas asincronas.

Debes declarar el servicio web con eventos:
  public withevents srv as new ElServicioWeb()

Cuando llames al ElMetodo del servicio, hazlo al metodo asincrono:
  srv.ElMetodoAsync()

Deberas crear un handler para ser notificado de la finalización de la llamada al servicio:
  private sub srv_ElMetodoCompleted(sender as object, e as                         ElMetodoCompletedEventArgs)
       resultado = e.result ' Aqui capturas la respuesta del servicio web
  End Sub

Mad Antrax

Para evitar eso usa Threads, si lo ves muy complicado create un dummy que realice esa llamada, de forma independiente (sé que es cutre, pero funcione igual de bien que un thread y un dummy es más sencillo de programar que un thread)
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

k.lopera

Si tienes dudas o no lo ves claro, te recomiendo el curso de Formularios y ADO en vídeo de www.videocursos.es, Allí lo explican paso a paso.

MANULOMM

esto no deberia de ir en .NET por lo menos la respuesta si....