C#backgroundworker /进度条没有更新

时间:2010-10-13 14:39:55

标签: c# winforms

string[] idit = File.ReadAllLines(textBox2.Text);
foreach (string barcoutn in idit){
    barcountmax++;

}
foreach (string ids in idit){
    //do sql stuff
    barmovement++;    
    bgw1.ReportProgress(barmovement);
}


private void bgw1_ProgressChanged(object sender, ProgressChangedEventArgs e){
    progressBar1.Value = e.ProgressPercentage; 
}

我的进度条属性是从barcountmax设置的最大值和最小值= 0.

我似乎无法让我的进度条更新,我缺少什么?

2 个答案:

答案 0 :(得分:4)

现在,您只在最后更新

foreach (string ids in idit)
{
    //do sql stuff
    barmovement++;
}
bgw1.ReportProgress(barmovement);

您需要随时更新:

foreach (string ids in idit)
{
    //do sql stuff
    barmovement++;
    bgw1.ReportProgress(barmovement);
}

您需要使用0到100之间的int值调用ReportProgress。如果您直接使用barmovement调用它,则可能存在问题。有关详细信息,请参阅ReportProgress的帮助:

  

percentProgress

     

输入:System.Int32

     

完成后台操作的百分比,从0到100。

答案 1 :(得分:2)

您是否将WorkerReportsProgress设为true?默认情况下它是假的。