C # справочная информация / индикатор выполнения не обновляется - PullRequest
0 голосов
/ 13 октября 2010
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 ]

4 голосов
/ 13 октября 2010

Прямо сейчас вы обновляете только в конце

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

Вам нужно обновляться по мере поступления:

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

Вам необходимо вызвать ReportProgress со значением int от 0 до 100. Если вы вызываете его с barmovement напрямую, это потенциально проблема. Подробнее см. Справку для ReportProgress :

percentProgress

Тип: System.Int32

Процент от 0 до 100 завершенной фоновой операции.

2 голосов
/ 13 октября 2010

Вы установили WorkerReportsProgress в true?По умолчанию это false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...