【发布时间】:2011-09-28 00:58:23
【问题描述】:
我希望后台工作人员将一些自定义信息发送回 ProgressChanged 事件处理程序,但它似乎只能发送一个 int。
有没有办法解决这个问题?
谢谢
【问题讨论】:
-
该 int 不应该用于发回数据。它用于发回错误代码。至少这是我的理解。
标签: c# backgroundworker
我希望后台工作人员将一些自定义信息发送回 ProgressChanged 事件处理程序,但它似乎只能发送一个 int。
有没有办法解决这个问题?
谢谢
【问题讨论】:
标签: c# backgroundworker
使用UserState 参数。
【讨论】:
ReportProgress 有一个重载方法,它接收一个可以是任何对象的 UserState 对象。您可以传递任何继承对象类的内容,然后在 ProgressChanged 事件处理程序上对其进行解析。
http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripprogressbar.aspx
【讨论】:
我成功的另一种方法是构建我自己的具有一些额外属性的后台工作人员类。在后台工作人员“DOWORK”处理程序期间,当我做事时,我在对象上设置其他属性...... int、string、其他对象等。然后,以我正在处理的任何百分比发出 ReportProgress。 ..
由于后台工作人员被传递给正在侦听反馈的任何对象,因此您可以通过“get/set”读取后台工作人员的属性值
【讨论】: