• Domingo 22 de Diciembre de 2024, 21:12

Autor Tema:  Servicio Web Asincrono  (Leído 5171 veces)

mx_latino

  • Miembro activo
  • **
  • Mensajes: 91
  • Nacionalidad: ec
    • Ver Perfil
Servicio Web Asincrono
« en: Miércoles 11 de Julio de 2007, 19:41 »
0
Tengo  un Servicio Web ya creado y tambien eh creado ya una Windows Aplication en C# que consuma ese Web Service y todo funcuiona correctamente...

Lo que esto hace es resumida es coger datos de una base de datos de Sql y cargar en mi formulario, pero como simpre hay un cierto tiempo de espera hasta que cargue los datos en el Gridview, ahora los que intenresa es MOSTRAR UNA BARRA DE PROGRSO O ALGO QUE ME DIGA COMO ESTA LA CARGA DE DATOS... QUE ME MUESTRE EL ESTADO DE ESTAS OPERACIONES????


ALGUIEN SABE COMO????

mx_latino

  • Miembro activo
  • **
  • Mensajes: 91
  • Nacionalidad: ec
    • Ver Perfil
Re: Servicio Web Asincrono
« Respuesta #1 en: Jueves 12 de Julio de 2007, 23:31 »
0
LO CONSEGUI!!!    :kicking:
 :comp:

Solo era cuestion de usar un control llamado backgroundWorker, y este maneja solo las llamadas asincronas..

ejemplo:

Se supone que ya Creamos un Web Service que nos devueve un Dataset con un conjunto de datos de una base de datos y ahora lo vamos a consumir desde un Windows Aplication

Código: Text
  1.  
  2.  
  3. //En el Load del formulario disparo el inicio del proceso y este llama al evento
  4. //DoWork del control backgroundWorker1
  5.  
  6. /*********************************************
  7. private void Form1_Load(object sender, EventArgs e)
  8.         {
  9.             this.backgroundWorker1.RunWorkerAsync();
  10.         }
  11. /*********************************************
  12.  
  13. //Este evento nos sirve para se dispara al iniciar el proceso asincrono
  14. private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
  15.         {
  16.  
  17. // Aqui invocamos al Web Service o cualquier cosa que queramos hacer
  18.             localhost.Service lh= new localhost.Service();
  19.  
  20. //Decimos que el resultado de esto que para nuestro caso va a ser el Dataset que
  21. //nos devuelve el Servicio Web sera el retorno de nuestra operacion
  22.             e.Result = lh.SacarDatos();
  23.  
  24. //Si queremos provocamos el Evento ProgressChanged del
  25. //control backgroundWorker que nos servira a su vez para cambiar o
  26. //actualizar los valores del pogressBar
  27.  
  28.             //Activar siguiente linea si se desea disparar evento ProgressChanged
  29.            // backgroundWorker1.ReportProgress(X_valorPorcentual);
  30.          }
  31.  
  32.  
  33. /*********************************************
  34.  
  35. //Este metodo se dispara cuando se finaliza el proceso asincrono
  36. private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  37.         {
  38.  
  39.   //Cargamos en una variable tipo Dataset el resultado
  40.             DataSet ds = (DataSet)e.Result;
  41.  
  42. //El Dataset asignamos al dataGridView
  43.             this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
  44.  
  45. // La siguiente linea  pone a progressBar1 como completado
  46.          //this.progressBar1.Value = this.progressBar1.Maximum;
  47.         }
  48.  
  49.  
  50. /*********************************************
  51.  
  52. //Este evento se dispara solo si en el Evento DoWork se habilito
  53. //la linea " backgroundWorker1.ReportProgress(X_valorPorcentual); "
  54.  
  55.  
  56.         private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
  57.         {
  58.  
  59.             //progressBar1.Value = e.ProgressPercentage;
  60.         }
  61.  
  62. /*********************************************
  63.  
  64.  
  65.  

Y todo de maravilla!!!

 :comp:   Espero sirva... mxl_latino@hotmail.com

carlosjor

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Servicio Web Asincrono
« Respuesta #2 en: Martes 20 de Abril de 2010, 23:55 »
0
gracias por el dato, pasó mucho tiempo de que escribiste esto pero me ayudó recién  :lol: