BackgroundWorker類是C#中用于在后臺執行操作的工具類。以下是使用BackgroundWorker類的常見步驟:
using System.ComponentModel;
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerSupportsCancellation = true;
worker.DoWork += new DoWorkEventHandler(DoWorkEventHandler);
worker.ProgressChanged += new ProgressChangedEventHandler(ProgressChangedEventHandler);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(RunWorkerCompletedEventHandler);
private void DoWorkEventHandler(object sender, DoWorkEventArgs e)
{
// 在此處執行后臺操作
}
private void ProgressChangedEventHandler(object sender, ProgressChangedEventArgs e)
{
// 在此處更新進度條或其他UI元素
}
private void RunWorkerCompletedEventHandler(object sender, RunWorkerCompletedEventArgs e)
{
// 在此處處理后臺操作完成后的邏輯
}
worker.RunWorkerAsync();
worker.CancelAsync();
請注意,DoWork事件處理程序中執行的代碼會在后臺線程上運行,而ProgressChanged和RunWorkerCompleted事件處理程序中的代碼會在主線程上運行。因此,在ProgressChanged事件處理程序中更新UI元素時,需要使用Invoke方法進行線程間的安全調用。