-1

可能重复:
Backgroundworker 不会报告进度

我在 WPF 中使用后台工作人员。问题在于它没有报告进度。它只是在完成任务时更新 ProgressBar。我想在后台任务运行时定期更新它。这是我的示例代码。

  bworker_doWork(...)
    {
       BindData();//this is database operation which binds data to datagrid.
    }

    bWorker_ProgressChanged(...)
    {
       progressBar.Value=e.ProgressPercentage;//it doesnt update this value
    }

    bWorker_RunWorkerCompleted(..)
    {
       progressBar.Value=100;//max value. control comes here and updates the progress to max value.
    }
4

1 回答 1

-1

你在任何地方设置 ProgressPercentage 吗?(无法从您提交的代码中看出)

我认为您错过的是您必须在代码中调用 ReportProgress;像这样:

myBackgroundWorker.ReportProgress((int)percent, null);

我猜在你的代码中它看起来像这样:

bworker_doWork(...)
{
   BindData();//this is database operation which binds data to datagrid.
   bworker.ReportProgress((int)percent);
}

bWorker_ProgressChanged(...)
{
   progressBar.Value=e.ProgressPercentage;//it doesnt update this value
}

bWorker_RunWorkerCompleted(..)
{
   progressBar.Value=100;//max value. control comes here and updates the progress to max value.
}
于 2012-10-11T07:04:35.663 回答