2016-05-31 31 views
1

我創建了一個應用程序,可以從Excel文檔讀取數據。我正在使用後臺工作人員完成所有耗時的任務。我如何顯示在進度欄中完成了多少比例的工作?更新進度條根據進程流量動態調整值C#

我知道有Report_Progress事件存在,但這是否意味着我需要指定硬編碼值?

有沒有什麼辦法可以讓我在全部工作中完成多少工作?

我想指定一個例子,當複製窗口顯示它的進度條時,它會根據複製數據的百分比獲得增量。

請幫我

感謝

+1

是的,你需要指定它。它不能神奇地解決你有多遠。你需要提供一個[mcve]來顯示你的嘗試和卡住的地方,這個問題過於寬泛。 –

回答

0
BackgroundWorker backgroundWorker = new BackgroundWorker(); 

backgroundWorker.WorkerReportsProgress = true; 
backgroundWorker.WorkerSupportsCancellation = true; 
backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork); 
backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged); 

void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
{ 
    backgroundWorker.ReportProgress(yourprogress); 
} 

void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) 
{ 
      Messagebox.show(e.ProgressPercentage.toString()) 
      /// update you progressbar here with e.ProgressPercentage 
      progressBar.Value = e.ProgressPercentage; 

} 

你可以找到另一個例子here

+0

SamP - 如果你正在更新一個'DataContext',用這種方法很簡單。否則,如果您直接更新UI控件(不建議),則需要使用「Dispatcher」來調用它。 –