为了提高 WrapPanel 的性能,我在我的 WP7 应用程序中引入了线程。一个列表中有很长List
的Item
-objects,一个一个添加到另一个`List。我有以下两个列表:
public List<Item> OriginalItems;
public List<Item> CopyOfItems;
放在BackgroundWorker.DoWork
事件处理程序中的逻辑如下:
workerThread.DoWork += new DoWorkEventHandler((object sender, DoWorkEventArgs e) =>
{
foreach (var item in OriginalItems)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
CopyOfItems.Add(item);
});
// I feel sooo sleepy
}
});
现在,当我用 - 替换我的评论时,这工作得很好,Thread.Sleep(150)
但任何更少的东西(偶尔甚至有更大的值)都会使代码连续多次放入同一个元素中。
为什么会这样,如何解决?