首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

backgroundWorker中,关于ReportProgress,一定亟需先强制转换吗

2012-11-07 
backgroundWorker中,关于ReportProgress,一定需要先强制转换吗?form中创建了一个backgroundWorker1,在back

backgroundWorker中,关于ReportProgress,一定需要先强制转换吗?
form中创建了一个backgroundWorker1,在backgroundWorker1_DoWork中,如果需要报告进度,调用ReportProgress(),一定需要对sender进行强制转化吗?

C# code
BackgroundWorker bgw = (BackgroundWorker)sender;            if (!bgw.CancellationPending)            {                Thread.Sleep(100);                bgw.ReportProgress((int)((i / totalAmount) * 100), i);            }

C# code
backgroundWorker1.ReportProgress((int)((i / totalAmount) * 100), i);

实际中,两种都可以用,这两种写法随便哪个都可以么?有什么区别,请各位指点。

[解决办法]
BackgroundWorker 是定义在方法中的,就必须强转sender了。
如果定义成类的字段或属性,就可以直接访问。
两者都是正确的使用方法。

还有ReportProgress的第一个参数并非百分比,如我1楼所说。

热点排行