Я пытаюсь обновить индикатор выполнения при запуске 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
WPF: обновление индикатора выполнения в Parallel.Foreach ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Winforms: обновление индикатора выполнения в форме из расчета на уровне доступа к данным
Anonymous » » в форуме C# - 0 Ответы
- 37 Просмотры
-
Последнее сообщение Anonymous
-