我有一種方法可用於從服務器下載文件。我的方法工作正常,但是我想返回在每個執行實例中執行的進程的計算百分比。我試圖使用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返回進度,它仍然沒有啓動。任何幫助,將不勝感激。
您必須從bw_DoWork方法調用BackgroundWorker.ReportProgress方法 – AirL