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.