Я использовал этот код из CodeProject. Это «вращающаяся» анимация таймера, похожая на ту, что используется в Firefox.
Добавьте DLL в качестве ссылки на ваш проект и опустите индикатор прогресса в вашей форме.
Установить его начальное состояние невидимым.
Тогда, когда вы хотите показать свой вызов обработки:
this.progressIndicator.Visible = true;
this.progressIndicator.Start();
Чтобы удалить его после завершения обработки, позвоните:
this.progressIndicator.Stop();
this.progressIndicator.Visible = false;
Он использует System.Windows.Forms.Timer
для управления анимацией и переопределяет метод OnPaint
для рисования изображения вращающимся. Это, вероятно, так точно, как вам нужно.
Я не автор, но я использовал это, и у меня не было никаких проблем с ним, значительно замедляющих реальные процессы.
Однако вам придется перенести обработку в другой поток - используйте класс BackgroundWorker
, иначе пользовательский интерфейс не обновится.