2011-10-22 85 views
5

我有幾個大文件正在處理中,我使用backgroundWorker1.ReportProgress(percent)來報告每個文件完成時的進度。但是現在我想要有第二個進度條來報告每個文件在進行處理時的進度(並重置下一個文件)。我可以使用我正在讀取的當前字節位置併除以文件的總大小以獲得百分比進度。但是如果只有一個ProgressChanged事件,我該如何將此值傳遞給progressBar2?C#Backgroundworker報告2個進度條的進度?

回答

5

一種方法是使用BackgroundWorker.ReportProgress(Int32, Object)並在userState參數中傳遞任何您想要的值。

另一種方法是簡單地知道,當您在第一個進度條上達到100%時,您需要增加另一個條。

3

ReportProgress有一個overload它允許您傳遞額外的對象。你可以用它來返回你需要的任何額外的狀態。

public void ReportProgress(
    int percentProgress, 
    Object userState 
) 

然後您可以從ProgressChangedEventArgs.UserState讀取狀態。