Предварительная загрузка пользовательского элемента управления - PullRequest
1 голос
/ 08 марта 2010

У меня есть пользовательский элемент управления, загрузка которого занимает несколько секунд. Есть ли способ предварительно загрузить элемент управления во время загрузки формы?

Ответы [ 3 ]

0 голосов
/ 08 марта 2010

Сначала используйте профилировщик, чтобы определить, что на самом деле вызывает замедление.

Затем, если это уместно, вы можете попытаться либо оптимизировать код, чтобы сделать его быстрее (до приемлемого уровня), либо реорганизовать независимый код (такой как доступ к данным) в отдельную область, чтобы он мог выполняться асинхронно с пользовательским контролем загрузки. Это все, что вы можете сделать, поскольку пользовательский элемент управления должен быть загружен в том же потоке, что и пользовательский интерфейс.

0 голосов
/ 08 марта 2010

Вместо того, чтобы выполнять кучу работы в конструкторе UserControl или событии Load, делайте это в рабочем потоке. BackgroundWorker хорош для этого. Это даст вам быстрый запуск формы, но не обязательно быструю доступность пользовательского интерфейса. Рассмотрим заставку.

0 голосов
/ 08 марта 2010

У вас есть источник для UserControl? Если это так, я бы начал с попытки оптимизировать UserControl. Похоже, UC создает слишком много объектов пользовательского интерфейса при запуске. Предварительная загрузка не спасет вас в любое время. Интерфейс Winforms является однопоточным, поэтому несколько секунд времени загрузки будут просто перенесены на запуск приложения. Я не знаю, если вы создаете несколько экземпляров UC. Если это так, вы можете использовать один экземпляр, чтобы избежать затрат на создание.

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