2013-02-20 67 views
0

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 

回答

3

从时间的角度看,这不应该作为事顶部或底部循环会这么快发生。

只要确保你盖边缘的情况下(0%是从一开始就设置,完成后100%被设置你的选项如下:

while(condition) 
{ 
    report 
    dowork 
} 
report 100% 

OR

report 0% 
while(condition) 
{ 
    dowork 
    report 
} 

OR

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

所以,这归结于您的逻辑看起来的偏好。处理时间不会影响

+1

或者换一种说法 - 您应该报告您已完成的工作,而不是您即将完成的工作。 +1 – Justin 2013-02-20 17:49:44