WrapPanel에서 성능을 높이기 위해 WP7 앱에 스레딩을 도입했습니다. List
이 Item
인데 한 개의 목록에 하나씩 다른 '목록에 추가됩니다. 아무것도하지만 - 나는 Thread.Sleep(150)
내 의견을 교체 할 때스레드, 목록 및 루핑은 좋은 생각이 아니십니까?
workerThread.DoWork += new DoWorkEventHandler((object sender, DoWorkEventArgs e) =>
{
foreach (var item in OriginalItems)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
CopyOfItems.Add(item);
});
// I feel sooo sleepy
}
});
지금,이 잘 작동 :
다음과public List<Item> OriginalItems;
public List<Item> CopyOfItems;
BackgroundWorker.DoWork
이벤트 핸들러 내부에 넣어 년대 논리대로 : 나는 다음과 같은 두 가지 목록이 less (그리고 더 큰 값을 사용하는 경우에도 때때로) 동일한 코드에 여러 번 코드를 연속적으로 넣습니다.
왜 그런가요? 어떻게 고칠 수 있습니까?
왜이 항목에 BeginInvoke를 사용합니까? UI 요소로 작업하고있는 것 같지 않습니까? – Steve
UI에 데이터 바인딩 된 목록을 업데이트합니다 (위의 코드는 ViewModel에 있습니다) –