我正在學習winforms,併爲自己設定了一個簡單的目標,即讓進度條從空到滿。這裏是我的畸形嘗試:在C#中實現進度條的正確方法
public partial class Form1 : Form
{
static BackgroundWorker bw = new BackgroundWorker();
public Form1()
{
InitializeComponent();
bw.DoWork += bw_DoWork;
bw.RunWorkerAsync();
}
void bw_DoWork(object sender, DoWorkEventArgs e)
{
for(int i=0; i<100; ++i)
{
progressBar1.PerformStep();
Thread.Sleep(10);
}
}
}
我敢肯定的是,Thread.Sleep()
是應該受到譴責的。我在這裏如何避免它?
嘗試[這裏](http://stackoverflow.com/questions/2168192/progressbar-separate-thread)。或[這裏](http://stackoverflow.com/questions/1946377/c-progressbar-problem)。或[這裏](http://stackoverflow.com/questions/336553/how-to-display-progressbar-if-waithandle-is-used)。 – 2011-06-01 16:49:54
或者如果你想做一些興奮嘗試運行一個算法,並使用StopWatch對象來衡量一個步驟從該算法,比你可以計算多少次步驟將被執行,所以你可以得到TotalTime,並基於該使用你'數學技能以獲得當前階段的百分比,所以我認爲這將滿足你是老師。 – Burimi 2011-06-01 21:51:56