關於如何實現進度條的問題一直存在,我相信我已經完成了所有這些工作,但我仍然不知道爲什麼我的進度條無法工作。使用backgroundworker的進度條
好吧,它似乎只在操作完成後才起作用,這當然不是我想要的。我希望進度條能夠正常工作,因爲主要操作正在進行。
我的代碼很長很痛苦,所以我打算簡化它使其儘可能基本。
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
//Main UI Operation
}
private void BackgroundWorker_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 BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
就像我說的,我只看到進度條在我的主UI操作後開始。
WorkerReportsProgress設置爲True。 最小值和最大值分別爲0和100。
我覺得這可能是對線程缺乏理解。
它是Windows窗體還是WPF? –
「//主要用戶界面操作」是否意味着活動在那裏發生並且您已將其排除在外?如果是這樣,那就是你的問題。如果'button1_Click()'立即返回,那麼問題就在別處。 – siride
Siride,「\\ Main UI Operation」是我稱之爲需要花費大量時間完成的方法的地方。爲什麼這是一個問題,我該如何解決?我對這個方法甚至準確嗎?還是你會以不同的方式去做? –