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 關鍵字來處理異步任務。