Как оптимизировать запуск приложения WPF при запуске Windows - PullRequest
5 голосов
/ 17 июня 2011

Я реализовал приложение WPF и зарегистрировал его для запуска при запуске Windows.Мое приложение представляет собой простое приложение для входа в систему, которое при входе пользователя отображается в области значков. Проблема заключается в том, что после запуска Windows требуется около 30 секунд.Я пробовал Нген без особого успеха.Я хотел бы избежать реализации заставки.Мне бы хотелось, чтобы мое приложение WPF появлялось «сразу» после запуска Windows, подобно тому, что делает Windows Live Messenger.Что я могу сделать, чтобы сократить время запуска?У меня есть другой выбор, кроме как написать его изначально?Спасибо.

Ответы [ 4 ]

2 голосов
/ 17 июня 2011

Требуется ли также 30 секунд для запуска, когда компьютер находится в режиме ожидания (т. Е. Если вы запускаете его двойным щелчком, когда компьютер не загружен при загрузке окон)?

Во время запуска Windows компьютер обычно занят многими вещами, и это может привести к замедлению работы вашего приложения. Тогда мало что можно сделать.

Но некоторые общие советы по улучшению запуска приложения WPF:

  • Создайте только те элементы управления, которые вам действительно нужны для первоначального показа пользователю
  • Уменьшите сложность ваших элементов управления / окон.
  • Не занимайте много времени в конструкторах ваших элементов управления и окон
    • Даже такие невинные вещи, как чтение файла с локального диска, могут занимать много времени, если диск занят другими вещами (как обычно это происходит при запуске Windows)
    • Вызовы веб-службы могут занять больше времени, если сеть еще не полностью инициализирована
    • Простое решение - перенести тяжелую работу на BackgroundWorker или использовать асинхронные вызовы для ввода / вывода и сетевых запросов

Существует также параметр, который вы можете ввести в app.config, который указывает среде выполнения не проверять подлинность сборок с сертификатом (эта проверка может занять много времени, особенно при холодном запуске):

<configuration>
  <runtime>
    <generatePublisherEvidence enabled="false"/> 
  </runtime>
</configuration>

Некоторые более общие советы доступны на сайте MSDN по адресу Время запуска приложения .

0 голосов
/ 28 февраля 2014

Используя regedit, создайте DWORD в реестре по адресу

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Serialize

звонил StartupDelayInMSec .

Значение по умолчанию должно быть установлено в 0, но двойная проверка.

Это сокращает время запуска моего приложения после запуска примерно на 10 секунд.

примечание: Ключ Serialize может не существовать.
Вы можете создать его, щелкнув правой кнопкой мыши на Explorer и выбрав New -> Key

0 голосов
/ 17 июня 2011
0 голосов
/ 17 июня 2011

Может быть этот сайт будет вам полезен. В нем перечислены некоторые варианты запуска приложения до (если это служба) или после входа в Windows. Они включают в себя взлом реестра, который вам нужно будет отменить во время удаления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...