У меня проблема с моей прогрессбаром и циклами (на C #).Мне нужно проанализировать коллекцию элементов (через цикл foreach), и для каждого найденного объекта мне нужно увеличить индикатор выполнения (через цикл for) ... Но мой код выполняется для каждого найденного объекта, что это нормально,но я не могу найти обходной путь ...
Вот мой упрощенный код:
int totalSteps = lv_selection.Items.Count;
foreach (string p in lv_selection.Items)
{
for (int i = 0; i < totalSteps; i++)
{
// A time consuming job
(sender as BackgroundWorker).ReportProgress((int)(100 / totalSteps) * i, null);
// Update the progressbar's text (located in another form)
this.Dispatcher.Invoke(() =>
{
progressbarForm.Progress(p);
});
}
}
Прогресс прогресса, как и ожидалось, но для каждого элемента в моей коллекции (переменная "p"),Я понимаю почему, но я не знаю, как это исправить.
Также попытался поменять местами циклы for и foreach.И установите цикл for после "трудоемкой работы".
Кто-нибудь может мне помочь, пожалуйста?
Спасибо большое.