¿Cómo modifico una propiedad de modelo de vista MVVM Progress
para el trabajo que se realiza en una cadena de fondo?Notificación de progreso del hilo de fondo en MVVM?
Estoy creando una aplicación MVVM que ejecuta una tarea en una cadena de fondo, usando Task.Factory.StartNew()
y Parallel.ForEach()
. Estoy usando this article como guía. Hasta ahora, mi código es el siguiente:
Task.Factory.StartNew(() => DoWork(fileList, viewModel));
Dónde fileList
es una lista de archivos a procesar, y viewModel
es el modelo de vista con la propiedad Progress
. El método DoWork()
se parece a esto, hasta el momento:
private object DoWork(string[] fileList, ProgressDialogViewModel viewModel)
{
Parallel.ForEach(fileList, imagePath => ProcessImage(imagePath));
}
el método ProcessImage()
realiza el procesamiento de imagen real. La propiedad Progress
del modelo de vista está vinculada a una barra de progreso en un cuadro de diálogo que se muestra justo antes de que comience el proceso en segundo plano.
Me gustaría actualizar la propiedad del modelo de vista Progress
después de cada iteración de la declaración Parallel.ForEach()
. Todo lo que necesito hacer es incrementar el valor de la propiedad. ¿Cómo puedo hacer eso? Gracias por tu ayuda.
¿Es 'Progress' solo un int, float o double? –