BackgroundWorker真是个好东西,对于线程不太熟悉的正好可以使用这个
仅仅入门,还有取消操作,异常操作后面再说
private BackgroundWorker backgroundWorker;
private void Form1_Load(object sender, EventArgs e)
{
progressBar1.Visible = false;
backgroundWorker = new BackgroundWorker();
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.ProgressChanged += BackgroundWorker_ProgressChanged;
backgroundWorker.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted;
}
private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i <= 100; i += 10)
{
backgroundWorker.ReportProgress(i);
Thread.Sleep(1000);
}
e.Result = "传的参数";
}
private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
label1.Text = $"进度 {e.ProgressPercentage} %";
}
private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("执行成功");
}
private void button1_Click(object sender, EventArgs e)
{
progressBar1.Visible = true;
backgroundWorker.DoWork += BackgroundWorker_DoWork;
backgroundWorker.RunWorkerAsync();
}