在vb.net wpf应用程序中运行sub时刷新/更新文本字段和进度条

在vb.net wpf应用程序中运行sub时刷新/更新文本字段和进度条,.net,wpf,vb.net,progress-bar,page-refresh,.net,Wpf,Vb.net,Progress Bar,Page Refresh,我有几个报告都合并到同一个数据表中。用户可以单击几个来运行,然后单击“查找记录”按钮来同时运行所有记录。由于每个存储过程都需要很长时间,我希望在成功调用每个存储过程时更新状态栏上的用户。然而,当我调用这个过程时,我在最后只得到一个更新,列出了所有内容 我想做的是: “初始化进度组件” repCompleted=0 ProgressBar1。最小值=0 ProgressBar1.最大值=repSel ProgressBar1.Value=repCompleted TextBlock2.Text=r

我有几个报告都合并到同一个数据表中。用户可以单击几个来运行,然后单击“查找记录”按钮来同时运行所有记录。由于每个存储过程都需要很长时间,我希望在成功调用每个存储过程时更新状态栏上的用户。然而,当我调用这个过程时,我在最后只得到一个更新,列出了所有内容

我想做的是:

“初始化进度组件”
repCompleted=0
ProgressBar1。最小值=0
ProgressBar1.最大值=repSel
ProgressBar1.Value=repCompleted
TextBlock2.Text=repCompleted&“of”&repSel&“报告已完成”
然后,当每个报告成功运行时,更新
repCompleted
值并刷新

repCompleted += 1
TextBlock2.Text = repCompleted & " of " & repSel & " reports finished"
ProgressBar1.Value = repCompleted
问题是,这些刷新在我退出sub之前不会发生。我希望它在每次完成时向前计数,即
1/4已完成
2/4已完成
,等等


有什么想法吗?

如果您的进程在前台(而不是后台)运行,它会阻塞UI。您必须在后台运行它,以便您的UI可以自由地执行其他操作(例如更新progressbar)。看看BackgroundWorker类,它可以让您完全做到这一点