none
Llamados de web services RRS feed

  • Pregunta

  • Hola

    Llamando un web service desde windows phone necesito que los metodos Async se puedan sincronizar, es mecir q hasta q un metodo se ejecute pues en cuanto a la linea de tiempo seguidamente se ejecute otra cosa, por que ?? Por que tengo el sigueinte codigo:

    for (int i = 0; i < 10; i++)
                {
                    Servicio.ServicioSoapClient servicio = new Servicio.ServicioSoapClient();
                    servicio.ObtenerCursoPorSemestreCompleted += new EventHandler<Servicio.ObtenerCursoPorSemestreCompletedEventArgs>(servicio_ObtenerCursoPorSemestreCompleted);
                    servicio.ObtenerCursoPorSemestreAsync((i + 1));
                }

    Como veran por cada iteracion del ciclo es necesario hacerce una llamada al web service, pero por ser metodo asincrono pues se vuelve casi todo un desastre, entonces como puedo hacer que esos metodos se ejecuten sincronamente ?? Deberia usar delegados y eventos ??

    Gracias !!!

    lunes, 12 de noviembre de 2012 3:20

Respuestas

  • Hola!

    Si el servicio es tuyo, por qué no haces un método que te devuelva toda la información necesaria de una sola vez??? así le ahorras al usuario muchas llamadas SOAP, que consumen datos y batería.

    Si no puedes hacer nada, la solución podría ser en el evento Completed volver a llamar al método ObtenerCursoPorSemestreAsync sumando +1 a una variable global y controlando su valor. Pero esto es una cochinada. Mucho mejor si puedes cambiar el servicio.

    Un saludo!


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter

    lunes, 12 de noviembre de 2012 6:40
    Moderador