WPF: оптимизировать время загрузки и использование памяти Canvas с более чем 5000 элементами - PullRequest
0 голосов
/ 26 апреля 2018

enter image description here

Как показано на рисунке выше, мое приложение имеет ~ 5000 элементов, нарисованных на холсте.

Из-за этого большого количества элементов,У меня две проблемы:

  1. Использование памяти составляет ~ 3 ГБ

  2. Время загрузки составляет ~ 4 минуты

Мне нужно оптимизировать это.

Например, как показано на рисунке, мы используем комбинированное окно, чтобы связать источник 5000 элементов со списком строковых элементов.

Есть лиВ любом случае мы можем использовать одно и то же местоположение источника предметов вместо того, чтобы каждый раз создавать новое для каждого из 5000 элементов?Это могло бы решить проблему использования памяти ...

По поводу времени загрузки, я не так сильно беспокоюсь сейчас.

Однако, в настоящее время у меня есть индикатор выполнения, который отображает прогресс загрузкивсе эти элементы, но он не работает должным образом (он закрывается перед загрузкой).Я думаю, что это так, потому что мы не можем запустить два потока STA одновременно.

Как я могу поддерживать этот индикатор выполнения, пока каждый элемент не будет успешно загружен на холст?Я не нашел ни одного события, которое сообщало бы об успешной загрузке элементов на холст.

Есть идеи, как улучшить это приложение?Предложения приветствуются.

...