Я должен отображать около 10 000 элементов управления wpf, и я не хочу замораживать свое приложение во время этого действия. Можно ли сделать это в другом потоке?Создание элементов управления wpf в фоновом потоке
Я пытался использовать
myStackPanel.Dispatcher.BeginInvoke(
System.Windows.Threading.DispatcherPriority.SystemIdle,
new NextPrimeDelegate(this.AddButton));
и другие варианты Dispatcher. Но это всегда затормозит мое приложение. Я бы хотел показать анимированный экран ожидания во время создания сотни элементов управления, но он всегда зависает, потому что это поток диспетчера.
спасибо за помощь Andrew.
Я не думаю, что вы можете создавать элементы управления на разных потоках. Все инициализации элементов WPF должны быть на первичной ленте STA. Но почему вы создаете множество элементов управления? Для такого сценария вы должны использовать некоторую виртуализацию пользовательского интерфейса. – jure
Пожалуйста, уточните, почему вы должны создать 10.000 элементов управления. Думайте, что должна быть какая-то альтернатива этому. Также проверьте эту статью, если она вам полезна: http://blogs.microsoft.co.il/blogs/tomershamam/archive/2009/09/06/ui-virtualization-vs-data-virtualization.aspx –
@MareInfinitus , ссылка выше мертва. –