我正在学习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