WrapPanel のパフォーマンスを向上させるために、WP7 アプリにスレッドを導入しました。List
1 つのリストに長いItem
-objects があり、1 つずつ別の `List に追加されます。次の 2 つのリストがあります。
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)
より少ない (場合によっては大きな値を使用する場合もある) と、コードが同じ要素に複数回続けて配置されます。
これはなぜですか、どうすれば修正できますか?