В последние несколько месяцев мое приложение становилось все больше и больше. На данный момент он работает как Wpf .EXE и XBAP, оба используют один и тот же код. В нескольких точках приложения приложение блокируется. После проверки я обнаружил, что в эти моменты приложение загружает dll из GAC.
Что происходит, когда приложение запускается, это занимает пару секунд, и пользователю предоставляется экран входа в систему. В данный момент пользователь нажимает кнопку OK, чтобы войти в приложение, блокирует приложение, потому что оно должно загрузить все виды библиотек для остальной части приложения. Поскольку они загружаются из потока пользовательского интерфейса, все анимации перестают воспроизводиться, даже если наведение мыши на кнопку ОК не заканчивается.
Все началось в считанные секунды, но в данный момент в некоторых моментах вам придется подождать пару минут, прежде чем приложение продолжит работу. Я думаю, что это неприемлемо.
Есть ли способ перенести загрузку DLL из GAC в другой поток? Итак, можно ли воспроизвести анимацию «Пожалуйста, подождите, пока приложение загружено»? Или, что еще лучше, я могу перенести загрузку всех dll, необходимых для запуска приложения, чтобы при работе было меньше ожиданий.