2011-10-22 19 views
5

Tengo varios archivos grandes que estoy procesando y estoy usando el backgroundWorker1.ReportProgress(percent) para informar el progreso a medida que finaliza cada archivo. Pero ahora quiero tener una segunda barra de progreso para informar el progreso de cada archivo individual mientras se procesa (y se restablece para el próximo archivo). Puedo usar la posición actual de bytes desde la que estoy leyendo y dividir por el tamaño total del archivo para obtener el progreso en porcentaje. ¿Pero cómo paso este valor a progressBar2 si solo hay un evento ProgressChanged?C# Backgroundworker informa progreso para 2 barras de progreso?

Respuesta

5

Una forma es usar BackgroundWorker.ReportProgress(Int32, Object) y pase lo que desee, en el parámetro userState.

Otra es simplemente saber que cuando haya alcanzado el 100% en la primera barra de progreso, necesita incrementar la otra barra.

3

ReportProgress tiene un overload que le permite pasar un objeto adicional. Puede usar esto para devolver cualquier estado adicional que necesite.

public void ReportProgress(
    int percentProgress, 
    Object userState 
) 

continuación, puede leer el estado de ProgressChangedEventArgs.UserState.

Cuestiones relacionadas