如何让背景工作者报告的不仅仅是一个int?

时间:2011-09-27 16:44:22

标签: c# backgroundworker

我希望backgroundworker将一些自定义信息发送回ProgressChanged事件处理程序,但它似乎只能发送一个int。

有解决方法吗?

由于

3 个答案:

答案 0 :(得分:3)

使用UserState参数。

答案 1 :(得分:2)

ReportProgress有一个重载方法,它接受一个UserState对象,该对象可以是任何对象。您可以传递继承对象类的任何内容,然后在ProgressChanged事件处理程序上解析它。

http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripprogressbar.aspx

答案 2 :(得分:0)

我成功的另一种方法是使用一些额外的属性构建我自己的Background Worker类。在后台工作者“DOWORK”处理程序中,正如我正在做的事情,我在对象上设置了其他属性... int,string,其他对象等。然后,以我正在处理的任何百分比发出ReportProgress。 ..

由于后台工作程序被传递给正在侦听反馈的任何内容,因此您可以通过“get / set”

读取后台工作程序上的属性值。