C# BackgroundWorker 是一个用于在后台线程中执行耗时操作的组件。它允许我们在执行任务的同时,仍然能够响应用户界面的交互,并且提供了进度报告和任务取消的机制。
使用 BackgroundWorker 的基本步骤如下:
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += Worker_DoWork;
worker.ProgressChanged += Worker_ProgressChanged;
worker.RunWorkerCompleted += Worker_RunWorkerCompleted;
private void Worker_DoWork(object sender, DoWorkEventArgs e)
{
// 耗时的任务
}
worker.ReportProgress(progressPercentage);
private void Worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// 更新 UI
}
private void Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// 处理任务完成后的逻辑
}
worker.RunWorkerAsync();
需要注意的是,BackgroundWorker 组件在 .NET Framework 4.5 后已经过时。推荐使用 Task-based Asynchronous Pattern (TAP) 或者使用 async/await 关键字来处理异步任务。