Как показать заставку, чтобы сократить время загрузки данных?

StackOverflow https://stackoverflow.com/questions/1305666

Вопрос

При запуске моего приложения я сначала должен прочитать некоторые данные, ввести некоторые формы и так далее.В течение этого времени пользователь видит только серые формы подготовки к показу чего-либо.

Это длится несколько секунд...

Я подумал о заставке, которая загружает данные в отдельный поток, а также показывает, сколько времени это займет.Или просто строка состояния?

Как бы вы сделали что-то подобное?

Я использую C # .NET 3.5 + Winforms

Это было полезно?

Решение

С WindowsForm проще использовать Backgroundworker.

Вы можете отключить элементы управления во время загрузки и отобразить индикатор выполнения на панели запуска с надписью "загрузка данных ...".

Ссылка на MSDN : http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx

Другие советы

Смотрите эту статью CodeProject: Довольно Хорошая заставка на C#

Он реализует экран- заставку, который:

  • Выполняется в отдельном потоке
  • Исчезает по мере того, как оно появляется, и гаснет по мере того, как оно исчезает
  • Отображает сообщение о состоянии выполнения, которое обновляется с помощью статического метода
  • Отображает и обновляет прогнозируемый самокалибрующийся индикатор выполнения с плавным градиентом, нарисованный владельцем
  • Отображает количество секунд, оставшихся до завершения загрузки

Вот пример того, как это выглядит - может быть, ваше будет красивее.8-)

alt text

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

В целях сокращения времени запуска вы можете также рассмотреть отложить некоторые действия при запуске, если они не являются строго надо.Это можно сделать позже в фоновом режиме с помощью таймера или по требованию.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top