Как показать заставку, чтобы сократить время загрузки данных?
-
19-09-2019 - |
Вопрос
При запуске моего приложения я сначала должен прочитать некоторые данные, ввести некоторые формы и так далее.В течение этого времени пользователь видит только серые формы подготовки к показу чего-либо.
Это длится несколько секунд...
Я подумал о заставке, которая загружает данные в отдельный поток, а также показывает, сколько времени это займет.Или просто строка состояния?
Как бы вы сделали что-то подобное?
Я использую C # .NET 3.5 + Winforms
Решение
С WindowsForm проще использовать Backgroundworker.
Вы можете отключить элементы управления во время загрузки и отобразить индикатор выполнения на панели запуска с надписью "загрузка данных ...".
Ссылка на MSDN : http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx
Другие советы
Смотрите эту статью CodeProject: Довольно Хорошая заставка на C#
Он реализует экран- заставку, который:
- Выполняется в отдельном потоке
- Исчезает по мере того, как оно появляется, и гаснет по мере того, как оно исчезает
- Отображает сообщение о состоянии выполнения, которое обновляется с помощью статического метода
- Отображает и обновляет прогнозируемый самокалибрующийся индикатор выполнения с плавным градиентом, нарисованный владельцем
- Отображает количество секунд, оставшихся до завершения загрузки
Вот пример того, как это выглядит - может быть, ваше будет красивее.8-)
Если это длится всего несколько секунд, то отображается ожидание курсор должен быть в порядке.Возможно, можно организовать так, чтобы главное окно отображалось как можно быстрее, а остальное запускалось после первого обновления экрана (напримерс помощью таймера).Это уменьшит воспринимаемый время запуска.
В целях сокращения времени запуска вы можете также рассмотреть отложить некоторые действия при запуске, если они не являются строго надо.Это можно сделать позже в фоновом режиме с помощью таймера или по требованию.
Недавно я написал похожую заставку, взяв за основу Тома Клементса.Взгляните на Моя Заставка чтобы посмотреть, соответствует ли это вашим потребностям.