阅读量:0
BackgroundWorker类在.NET Framework中提供了一种方便的机制来报告进度。在BackgroundWorker对象上调用ReportProgress方法可以报告进度,并在ProgressChanged事件处理程序中处理这些进度报告。
以下是使用BackgroundWorker的进度报告机制的示例代码:
using System; using System.ComponentModel; class Program { static void Main() { BackgroundWorker worker = new BackgroundWorker(); worker.WorkerReportsProgress = true; worker.ProgressChanged += Worker_ProgressChanged; worker.DoWork += (sender, e) => { for (int i = 0; i < 100; i++) { // 模拟耗时操作 System.Threading.Thread.Sleep(100); // 报告进度 worker.ReportProgress(i); } }; worker.RunWorkerAsync(); } static void Worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { Console.WriteLine("Progress: " + e.ProgressPercentage + "%"); } }
在上面的示例中,我们创建了一个BackgroundWorker对象,并设置WorkerReportsProgress属性为true,以便能够报告进度。然后我们在DoWork事件处理程序中模拟一个耗时操作,并使用ReportProgress方法报告进度。在ProgressChanged事件处理程序中,我们处理进度报告并输出进度信息。
通过这种方式,我们可以在后台执行任务的同时报告进度,并在前台更新UI或执行其他操作。