我有一种用于从服务器下载文件的方法。我的方法工作正常,但是我想返回在每个执行实例中执行的进程的计算百分比。我尝试使用 backgroundworker 并为我的进度条使用 backgroundworker_changed 方法,如下所示。
bw.WorkerReportsProgress = true;
bw.WorkerSupportsCancellation = true;
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
单击按钮启动工作人员。
private void btnStart_Click(object sender, EventArgs e)
{
if (bw.IsBusy != true)
{
bw.RunWorkerAsync();
}
}
worker_changed 方法
private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = e.ProcessPercentage;
}
我的问题是,我知道我必须报告 DoWork() 方法的进度。请问我该如何实现?我想过做这样的事情。
private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = Convert.ToInt32( e.UserState );
}
它仍然没有触发,因为 DoWork 没有返回任何进展。任何帮助,将不胜感激。