我在我的WP7应用程序中有一个场景,其中包含约250个带有自定义模板的复选框。WP7将批量元素添加到我的场景
复选框都在后台线程上准备(数据),并且一切正常。
但是,当我去将它们添加到画布,即使我使用Dispatcher它似乎完全陷入UI线程。
有没有一种很好的方式来批量添加它们,使它们几乎逐渐出现在现场?
这是我目前的执行
foreach (var cbData in container.ParamCheckBoxesToCreate)
{
CheckBox cb = new CheckBox
{
Template = (ControlTemplate)Resources[cbData.CB_TemplateName],
//more creation stuff
};
Canvas.SetLeft(cb, cbData.CB_Left);
Canvas.SetTop(cb, cbData.CB_Top);
Canvas.SetZIndex(cb, 30);
Dispatcher.BeginInvoke(new Action(() => MyCanvas.Children.Add(cb)));
}
但是,增加的这250仍然造成UI线程。
我该怎么补充,一次说10个,直到完成了?
好几个问题,1.为什么? 2.我需要绝对定位复选框,因此Canvas.SetTop/Left – Mark 2011-04-05 11:11:09