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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д