ProgressBar в отдельном потоке - C#
Формулировка задачи:
Кинул на форму бутонку прогрессБар и тот элемент с не выговариваемым названием для осуществления операций в отдельном потоке, по задумке при нажатии на бутонку должен програссбар заполниться, но он почемуто с места не двигается. MessageBox.Show в этом потоке работает. Скажите пожалуйста как осуществить мою чудаковатую задумку?
Решение задачи: «ProgressBar в отдельном потоке»
textual
Листинг программы
public partial class Form2 : Form
{
BackgroundWorker bw;
public Form2()
{
InitializeComponent();
progressBar1.Maximum = 100;
progressBar1.Step = 1;
bw = new BackgroundWorker();
bw.WorkerReportsProgress = true;
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
}
void bw_DoWork(object sender, DoWorkEventArgs e)
{
//...
//делаем что-то
//...
for (int i = 0; i < 101; i++)
{
((BackgroundWorker)sender).ReportProgress(i);
Thread.Sleep(30);
}
}
void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Text = "Работа окончена";
}
private void button1_Click(object sender, EventArgs e)
{
Text = "Работа выполняется";
bw.RunWorkerAsync();
}
}