Я пытаюсь найти способ добавить несколько (более 100 с большим объемом данных) элементов управления в графический интерфейс WPF, не блокируя поток графического интерфейса сам по себе. Вот как я создаю элементы управления в настоящее время:
Я создаю элементы управления асинхронно в параллельном потоке, и я могу добавить их в графический интерфейс, но когда дело доходит до container.Children.Add(), графический интерфейс блокируется.
Моей первой попыткой было создать их с помощью задачи асинхронным методом.
var a = Task.Factory.StartNew(() =>
{
foreach (UserElement element in userElements)
this.Dispatcher.Invoke(() => { UserElementsContainer.Children.Add(element); });
});
await a; //Won't work with or without await.
Есть ли другой способ?
this.Dispatcher.Invoke()
создаст значительную нагрузку на поток сообщений пользовательского интерфейса. - person MickyD   schedule 24.08.2015