Здравствуйте, у меня есть функция, которая требует времени для загрузки. поэтому я планирую поставить индикатор выполнения на моей winform, чтобы пользователь знал, что моя программа все еще работает. однако, я не знаю, как я это разрешу. есть кто-то здесь, кто мог бы помочь мне.Progress bar C# - загрузка как процесс
Вот что я планирую сделать:
private void btnProcess_Click(object sender, EventArgs e)
{
//function which takes time because it contacts to a server
}
Я хочу иметь прогрессбар которая увеличивает и заканчивается после того, как мой процесс завершен. Должен ли я использовать фонарик для этого?
*** Я следил за этим учебным пособием http://www.codeproject.com/Tips/83317/BackgroundWorker-and-ProgressBar-demo, но он не дождался завершения определенной функции или события, как экрана загрузки.
*** Мой прогресс не заканчивается после того, как мое событие buttonclick завершило выполнение всех его функций.
Я создал:
private void myBackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i <= 100; i++)
{
myBackgroundWorker.ReportProgress(i);
System.Threading.Thread.Sleep(100);
}
}
private void myBackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
myProgressBar.Value = e.ProgressPercentage;
}
private void btnProcess_Click(object sender, EventArgs e)
{
myBackgroundWorker.RunWorkerAsync();
//function which takes time because it contacts to a server
}
Как бы узнать, когда будет мой ButtonClick событие собирается закончиться? так что мой индикатор прогресса также закончится?
«Как бы знать, когда же будет мое событие ButtonClick закончится? так что мой индикатор прогресса закончится также?" Подключите ** событие RunWorkerCompleted() ** вашего элемента BackgroundWorker(), поскольку оно будет срабатывать при завершении метода DoWork(). Из этого события будет безопасно обновлять элементы управления, такие как кнопки сброса и панели прогресса ... –