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

Va....

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();
}
Código:
private void EjecutaProcesos_DoWork(object sender, DoWorkEventArgs e)
{
 int porcentaje = 0;
 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);

  ((BackgroundWorker)(sender)).ReportProgress(porcentaje);
  porcentaje++
 }
 }
Código:
private void BarraProgreso(object sender, ProgressChangedEventArgs e)
{
  this.prgBarProcesos.Value = e.ProgressPercentage;
}
Al entrar a alguno de estos métodos es donde truena con este componente sin el todo funciona bien.
Código:
private void switchProcesos(int idProceso)
{
switch (idProceso)
{
 case 4:
    this.registroMinitor(4);
   Settings.Default.Reporte = "00012";
   this.GeneraProcesoID(); //crea procesID
   this.CartaIncrementoLC(); //ejecuta SP
   this.CrearArchivosPDF("hRptData", "IncrLC.rpt",   _IOHelper.CrearDir("LC"));
  this.actualiza_registro();
 break;
 }
}

este es mi lindo código si tienes dudas comentame.

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