如何在TextBlock和ProgressBar中显示进度?

我想显示我的Excel阅读程序的进度。 这里有一些代码:

public void ReadExcel() { //Do something (get Excel File...) txtProgress.Text += "Start"; int rows = exRng.Rows.Count; int column = exRng.Columns.Count; progProgress.Maximum = rows;//ProgressBar txtProgress.Text += "Start";//TextBlock for (int i = 1; i <= rows; i++) { progProgress.Value = i; //Do something txtProgress.Text += "\n " + Name + " was created"; } } 

ProgressBar最大值是Excel文件中的行数。 在每个循环之后,TextBlock应显示名称已创build。 ProgressBar值应显示进度。

我的窗口如下所示: 窗口顶部有一个文本块,底部有一个ProgressBar

但窗口只显示excel阅读的结束。 它不刷新TextBlock或ProgressBar。 我只看到空的窗口,并在结束这个窗口: 进度结束

有人能帮我吗? 谢谢

你应该使用backgroundWorker来实现这一点。 这里详细讨论非常类似的例子

问,如果你在执行上遇到困难。