我使用以下代码更新我的进度条.
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");
Run Code Online (Sandbox Code Playgroud)
但是,它在运行时没有得到更新.是因为进度条在同一个线程中.如果是这样,如何从另一个线程更新此进度.救命...
这是Windows窗体吗?在ProgressBar上调用Refresh()应该这样做.您也可以使用Application.DoEvents,这样可以让您的UI响应用户输入而不是在此过程中锁定.
更好的想法是使用BackgroundWorker类.在后台线程上完成工作,并通过ReportProgress方法将进度更新发送到UI线程.这可以使您的UI线程保持响应.