我有大量的数据和 Windows 窗体控件要从文件加载,当文件真的很大时,我必须使用进度条。
问题是,进度条可以工作,但在程序开始构建数据并将其加载到表单的那一刻,它会立即冻结。
那么,无论如何我可以让它工作吗?我将后台工作人员与进度条一起使用。
下面是一些代码:
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
listBox2.Items.Clear();
listBox3.Items.Clear();
dataGridView1.RowCount = 0;
progressBar1.Visible = true;
reading.Visible = true;
backgroundWorker1.RunWorkerAsync();
setLabels();
progressBar1.Visible = false;
reading.Visible = false;
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 1; i <= 100; i++)
{
// Wait 100 milliseconds.
Thread.Sleep(100);
// Report progress.
backgroundWorker1.ReportProgress(i);
}
}
private void backgroundWorker1_ProgressChanged(object sender,
ProgressChangedEventArgs e)
{
// Change the value of the ProgressBar to the BackgroundWorker progress.
progressBar1.Value = e.ProgressPercentage;
// Set the text.
reading.Text += " at " + e.ProgressPercentage.ToString() + "%";
}