背景工作者报告进展位置

时间:2013-02-20 17:34:19

标签: c# winforms

ReportProgress的最佳位置是什么?

//Do my hard work before report progress
bkWorker.ReportProgress((int)percent, company.CompanyName);

bkWorker.ReportProgress((int)percent, company.CompanyName);
//Do my hard work after report progress

1 个答案:

答案 0 :(得分:3)

从时间的角度来看,这并不重要,因为循环的顶部或底部会很快发生。

请确保覆盖边缘情况(0%从开始设置,100%在完成时设置。您的选项如下:

while(condition)
{
    report
    dowork
}
report 100%

OR

report 0%
while(condition)
{
    dowork
    report
}

OR

while(true)
{
    report
    if(100%)
        break;
    dowork
}

因此,它归结为您对逻辑外观的偏好。处理时间无关紧要