【发布时间】:2011-06-02 10:13:24
【问题描述】:
我有一个带有列表视图控件的 WPF 应用程序。该应用程序基本上将文件加载到列表视图中。然后我想遍历每个 listview 元素,突出显示当前行,并执行某个任务。
任务完成后,我用结果更新另一个文件和一个面板,然后转到下一个列表视图元素。
我以前在 WinForms 中做过类似的事情,但在 WPF 方面我是很绿色的。我想我主要关心的是如何处理第二个线程,而不是 UI 线程。 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)?程序应该一直运行,直到按下“停止”按钮或其他东西。
【问题讨论】: