Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: franbo en 20 Enero 2008, 19:13 pm



Título: Como llamar a un servicio web en segundo plano
Publicado por: franbo en 20 Enero 2008, 19:13 pm
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.


Título: Re: Como llamar a un servicio web en segundo plano
Publicado por: k.lopera en 20 Enero 2008, 19:31 pm
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


Título: Re: Como llamar a un servicio web en segundo plano
Publicado por: Mad Antrax en 20 Enero 2008, 19:33 pm
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)


Título: Re: Como llamar a un servicio web en segundo plano
Publicado por: k.lopera en 20 Enero 2008, 19:34 pm
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.


Título: Re: Como llamar a un servicio web en segundo plano
Publicado por: MANULOMM en 20 Enero 2008, 20:47 pm
esto no deberia de ir en .NET por lo menos la respuesta si....