BackgroundWorker, где ошибка? - C#
Формулировка задачи:
Где ошибка
Пишет не этот компанент занят backgroundWorker1 и не может еще делать какие действия
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; //using System.Threading.Tasks; using System.Windows.Forms; using System.Threading; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); button1.Click += button1_Click; button2.Click += button2_Click; backgroundWorker1.DoWork += backgroundWorker1_DoWork; backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged; backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted; } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { for (int i = 0; i <= 99;i++ ) { if(backgroundWorker1.CancellationPending) { e.Cancel = true; break; } backgroundWorker1.ReportProgress(i); Thread.Sleep(50); } } private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { progressBar1.Value = e.ProgressPercentage + 1; progressBar1.Value = e.ProgressPercentage; } private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { string message = e.Cancelled ? "Процесс отмкнен" : "Процесс завершон!"; MessageBox.Show(message); button1.Enabled = true; } private void button1_Click(object sender, EventArgs e) { button1.Enabled = false; backgroundWorker1.RunWorkerAsync(); } private void button2_Click(object sender, EventArgs e) { backgroundWorker1.CancelAsync(); } } }
Решение задачи: «BackgroundWorker, где ошибка?»
textual
Листинг программы
//button1.Click += button1_Click; //button2.Click += button2_Click;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д