没有调度程序的WPF进度条更新

时间:2011-05-03 18:11:33

标签: c# wpf progress-bar

我试图在单击按钮的单独窗口上显示进度条。 我不想使用调度程序,调用函数,因为我不希望用户在完成之前做任何其他事情。

因此,在按钮上单击即可调用一个函数,该函数在内部使用委托来调用带有更新的函数。

void button click()
{
   classA.function(list);
}

在classA里面

void function(list)
{
 foreach(list)
   calling the delegate function(ShowtProgress) to update the progress bar with current and max properties.
}

所以我的委托函数看起来像这样:

private void ShowtProgress(ProgressReport importProgressReport)
{
            importProgressBar.UpdateProgressBar(importProgressReport.OverallProgress.TotalItems,importProgressReport.OverallProgress.ItemsProcessed);
            importProgressBar.ShowDialog();
}

正如您所看到的那样,我正在处理当前已处理的数量以及进度条updateProgressbar函数的总项目以更新进度条。

我已将进度条的最小值定义为0。

但问题是,当min = 0并假设max = 1时,它首次显示showdialog(进度条)。它会一直等待用户的输入。在我不关闭对话框之前,处理不会更进一步,当再次调用此函数时,模态不会弹出或不会使用最新值进行更新。

如果我错过了什么,请告诉我。

1 个答案:

答案 0 :(得分:1)

由于ShowDialog()调用,它正在等待用户输入。使用普通Show()(如果importProgressBar不可见),或者只删除该行。