В моем приложении WP7 есть сцена, которая содержит около 250 флажков с пользовательскими шаблонами.
Все флажки подготовлены (с данными) в фоновом потоке, и все работает нормально.
Но когда я добавляю их в Canvas, даже если я использую Dispatcher, кажется, что он полностью застрял в потоке пользовательского интерфейса.
Есть ли хороший способ добавлять их партиями, чтобы они почти постепенно появлялись на сцене?
Это моя текущая реализация
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это все еще убивает поток пользовательского интерфейса.
Как я могу добавить, скажем, 10, пока я не закончу?