我有大量的數據和Windows窗體控件從文件加載,當文件大小真的很大時,我得使用進度條。關於C#中的進度條完全凍結
事情是,進度條工作,但它會立即凍結程序開始構建數據並將其加載到窗體的時刻。
那麼,有無論如何,我可以使它工作?我使用後臺工作人員和進度條。
下面是一些代碼:
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() + "%";
}
有些代碼可能會有所幫助在這裏。我會猜測用戶界面被阻止,後臺工作人員沒有正確使用。 – 2012-07-25 10:26:10
東西必須阻止你的UI線程更新..你能告訴我們你的代碼摘要嗎? – Shai 2012-07-25 10:26:30
-1直到您提供詳細信息。 – Polynomial 2012-07-25 10:28:31