У меня есть сценарий, в котором использование WPF как части немодального диалога значительно превосходит альтернативы.Тем не менее, я вижу, что каждый раз, когда я открываю диалоговое окно, оно становится немного медленнее, пока, в конце концов, для его запуска не понадобится до 20 секунд.
Я профилировал его с помощью ANTS, и онв основном указывает на ElementHost в трех разных местах во время части InitializeComponent моей формы: создание хоста, установка цвета фона (который я могу исключить) и назначение дочернего элемента.
Пока это происходит на отдельномПоток пользовательского интерфейса из основного потока пользовательского интерфейса (выполняется путем создания потока, установки его квартиры в STA, а затем запуска другого Application.Run (myform) внутри), он по-прежнему блокирует основной графический интерфейс из-за его высокой занятости.
Если вы закроете приложение и начнете сначала, проблема исчезнет, и некоторое время она снова будет работать очень хорошо.Кажется, что никакая другая часть кода не тормозит.
Могу ли я что-то сделать, чтобы очистить после ElementHost?