当构建一个图形化的Windows Form桌面应用程序并且需要执行在应用程序主UI线程之外的线程中长时间的任务时,BackgroundWorker类就很有用了。
要使用BackgroundWorker,我们只需要c#教程告诉它希望在后台执行那个方法并且调用RunWorkerAsync()即可

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int a = int.Parse(textBox1.Text.Trim());
int b = int.Parse(textBox2.Text.Trim());
Add ad = new Add(a,b);
backgroundWorker1.RunWorkerAsync(ad);
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Add args=(Add)e.Argument;
for (int i = 0; i < 11; i++)
{
Thread.Sleep(200);
backgroundWorker1.ReportProgress(i*10);
}
e.Result = args.a + args.b;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
label1.Text = e.Result.ToString();
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
}
public class Add
{
public int a;
public int b;
public Add(int a, int b)
{
this.a = a;
this.b = b;
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int a = int.Parse(textBox1.Text.Trim());
int b = int.Parse(textBox2.Text.Trim());
Add ad = new Add(a,b);
backgroundWorker1.RunWorkerAsync(ad);
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Add args=(Add)e.Argument;
for (int i = 0; i < 11; i++)
{
Thread.Sleep(200);
backgroundWorker1.ReportProgress(i*10);
}
e.Result = args.a + args.b;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
label1.Text = e.Result.ToString();
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
}
public class Add
{
public int a;
public int b;
public Add(int a, int b)
{
this.a = a;
this.b = b;
}
}
以上就是c# BackgroundWorker组件的作用的详细内容





![战神引擎传奇手游【1.76盛战传奇免授权版[摸摸登陆器]】最新整理Win系复古服务端+安卓苹果双端+GM授权物品后台+详细搭建教程](https://cdn.jxasp.com:9143/image/20251106/1B4E8594B3BEB90E8601D63A8A39CB0B.jpg)













