读书人

backgroundWorker中关于ReportProgr

发布时间: 2012-11-07 09:56:10 作者: rapoo

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楼所说。

读书人网 >C#

热点推荐