2013-02-16 56 views
0

我看到BackgroundWorker類能夠向上層進程傳遞一些進度信息。我有靜態方法:如何正確使用BackgroundWorker調用帶參數的靜態方法

MyClass.MyMethod(string, string) // Does some work which progress I need to report 

我怎麼可以用這樣的方法從任何調用函數或過程返回BackgroundWorker的進展是這樣,例如信息:

backgroundWorker.ReportProgress(percent, "Stage N 1..."); 

回答

1

首先將WorkerReportsProgress屬性設置爲True。

將事件處理程序添加到Progress changed event 並至少將您的代碼添加到新處理程序。

例如:

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) 
{ 
    var percent = e.ProgressPercentage; 
} 

但至少,後臺工人階級或多或少過時(Windows statement)我想用新的Task class

+0

我的意思是MyClass.MyMethod(字符串,字符串)需要一些與進度信息無關的必要參數 - 百分比(int),消息(字符串)。 MyMethod應該在必要的地方調用ReportProgress。 – 2013-02-16 20:39:42

+0

代碼部分從示例中刪除,但我仍然建議使用Task或Asnyc而不是BackgroundWorker – Venson 2013-02-16 20:40:56