Как показать заставку, чтобы убить время при загрузке данных? - PullRequest
3 голосов
/ 20 августа 2009

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

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

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

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

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

Ответы [ 4 ]

8 голосов
/ 20 августа 2009

См. Эту статью CodeProject: Довольно хороший заставки в C #

Он реализует заставку, которая:

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

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

alt text

2 голосов
/ 20 августа 2009

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

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

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

0 голосов
/ 21 сентября 2009

Я недавно написал аналогичный заставки, используя Том Клементс в качестве основы. Взгляните на My Splash Screen , чтобы увидеть, соответствует ли он вашим потребностям.

0 голосов
/ 20 августа 2009

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

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

...