Professional Documents
Culture Documents
Usando este control, la gestin de hilos est encapsulada en el control de manera que el
programador no tiene que lidiar con hilos (threads), invokes o delegados (delegates).
Ejemplo
Este sencillo ejemplo cubre prcticamente todas las posibilidades de este componente: soporte de
cancelacin, gestin de errores , informacin de progreso (y ejemplo de como pasar informacin en
cada notificacin de progreso)
Evento backgroundWorker1_DoWork
37
38
42
43
44
45
46
47
Este evento es lanzado en el hilo principal, por lo que aqu SI podemos acceder a controles del
formulario de manera segura.
01 private void backgroundWorker1_ProgressChanged(object sender,
02 ProgressChangedEventArgs e)
03 {
progressBar1.Value = e.ProgressPercentage; //actualizamos la barra
04
de progreso
DateTime time = Convert.ToDateTime(e.UserState); //obtenemos
05
informacin adicional si procede
06
07
//en este ejemplo, logamos a un textbox
08
txtOutput.AppendText(time.ToLongTimeString());
09
txtOutput.AppendText(Environment.NewLine);
10 }
Evento backgroundWorker1_RunWorkerCompleted
Este mtodo se ejecuta cuando la tarea ha sido finalizada. Una tarea se finaliza cuando:
a) termina de manera normal
b) termina con error
c) es cancelada.