WPF: обновление индикатора выполнения в Parallel.ForeachC#

Место общения программистов C#
Anonymous
WPF: обновление индикатора выполнения в Parallel.Foreach

Сообщение Anonymous »

Я пытаюсь обновить индикатор выполнения при запуске Parallel.Foreach, но во время выполнения ничего не происходит. Индикатор прогресса обновляется только после завершения цикла For. Как заставить этот код работать?

XAML



Maximum="100"
Minimum="1" />






C#

private void Test_Click(object sender, RoutedEventArgs e)
{
decimal current=0;
List lst = new List();

lst.Add("Foo");
lst.Add("Foo");
lst.Add("Foo");
lst.Add("Foo");

decimal max = 100000;

var uiFactory = new TaskFactory(TaskScheduler.FromCurrentSynchronizationContext());

Parallel.ForEach(lst, (data) =>
{
for (int i = 0; i < max; i++)
{
// Use the uiFactory above:
// Note the need for a temporary here to avoid closure issues!
current = current + 1;
uiFactory.StartNew( () => LoadProgress.Value = (double)(current/max)*100);
}
});

MessageBox.Show("Done!");
}


Подробнее здесь: https://stackoverflow.com/questions/410 ... el-foreach

Вернуться в «C#»