C# 如何使用c在运行时更新进度条#
我正在使用下面的代码更新我的进度条C# 如何使用c在运行时更新进度条#,c#,C#,我正在使用下面的代码更新我的进度条 ProgressBar.Visible = true; ProgressBar.Minimum = 1; ProgressBar.Maximum = PortCount; ProgressBar.Value = 1; ProgressBar.Step = 1; int intdata = 5; for (int x = 1; x <
ProgressBar.Visible = true;
ProgressBar.Minimum = 1;
ProgressBar.Maximum = PortCount;
ProgressBar.Value = 1;
ProgressBar.Step = 1;
int intdata = 5;
for (int x = 1; x <= intdata; x++)
{
ProgressBar.PerformStep();
}
MessageBox.Show("Done");
ProgressBar.Visible=true;
最小进度条=1;
ProgressBar.Maximum=端口计数;
ProgressBar.Value=1;
ProgressBar.Step=1;
intdata=5;
对于(int x=1;x您没有给消息pump time来更新控件
尽管这两种方法都不好,但您可以:
- 在控件上调用
Refresh
- 调用
Application.DoEvents
这是Windows窗体吗?在ProgressBar上调用Refresh()应该可以做到这一点。您也可以使用Application.DoEvents,这将使您的UI响应用户输入,而不是在此过程中锁定
更好的方法是使用BackgroundWorker类。在后台线程上执行工作,并通过ReportProgress方法将进度更新发送到UI线程。这样可以使UI线程保持响应