Ver Mensaje Individual
  #9 (permalink)  
Antiguo 09/10/2008, 10:27
Avatar de mvazquez
mvazquez
 
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 20 años, 4 meses
Puntos: 8
Respuesta: BackgroundWorker

Hola colegas, estoy tratando de usar el componente BackgroundWorker para crear varios hilos porque necesito ejecutar dos procesos a la vez, uno que muestre una progressBar y mandarle el avance y otro que ejecute el proceso que se tarda mucho, tengo esto pero me surgío la duda que posteo al final.

Aqui es donde se invocan los metodos
Código:
private void btnProcesar_Click(object sender, EventArgs e)
{
BackgroundWorker bw = new BackgroundWorker();
bw.WorkerReportsProgress = true;
bw.DoWork += new DoWorkEventHandler(EjecutaProcesos_DoWork);
bw.ProgressChanged += new ProgressChangedEventHandler(BarraProgreso);
bw.RunWorkerAsync();
}

Este método disparara el método (válgale la redundancia) que ejecuta el SP de proceso
aquí es donde me falta enviarle el argumento (object) al método BarraProgreso
Código:
private void EjecutaProcesos_DoWork(object sender, DoWorkEventArgs e)
{
  int porcentaje;

  for (int i = 0; i < this.gvProcesos.DataRowCount; i++)
  {

  int vProceso = Convert.ToInt16(((DataTable)(((DataView)(((BaseView)(this.gvProcesos)).DataSource)).Table)).Rows[i]["idProceso"]);
  switchProcesos(vProceso);
  BarraProgreso("que le mando?", ((BackgroundWorker)(sender)).ReportProgress(porcentaje));
  porcentaje++; 
  }
}

Código:
private void BarraProgreso(object sender, ProgressChangedEventArgs e)
{

this.prgBarProcesos.Value = e.ProgressPercentage;
}
y por ultimo aquí manejo lo procesos según su ID
Código:
private void switchProcesos(int vProceso)

switch (this.vProceso)
{ 
case 6:
  ActualizaEstatus();
  CargaProcesos();
  break;
 
}

La duda es de cómo enviarle el argumento (object) al método BarraProgreso

Gracias.
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."

Última edición por mvazquez; 09/10/2008 a las 10:34