У меня есть приложение WPF с контролем списка. Приложение в основном загружает файл в виде списка. Затем я хочу перебрать каждый элемент списка, выделив текущую строку и выполнив определенную задачу.
Когда задача выполнена, я обновляю другой файл и панель с результатами и перехожу к следующему элементу списка.
Я уже делал подобные вещи в WinForms, но я довольно зеленый, когда дело доходит до WPF. Я предполагаю, что моя главная проблема заключается в том, как обрабатывать второй поток, кроме потока пользовательского интерфейса. Отличается ли модель потоков в WPF?
Во-вторых, программа представляет собой цикл по ObservableCollection:
for (int i = 0 ; i < Collection.Count; i++)
{
HighlightCurrentRowInListView();
Collection[i].DoWork();
PostWorkToPanel();
// Bad loop around code
if (i == (Collection.Count - 1))
{ i = -1; }
}
Если я внесу изменение в коллекцию (которая является ObservableCollection), как будет обновляться цикл? Какой метод итераций лучший, foreach, .ForEach (x => x) для этого контекста? Программа должна продолжаться до тех пор, пока не будет нажата кнопка «СТОП» или что-то еще.