【发布时间】:2011-06-01 16:44:38
【问题描述】:
我正在学习 winforms,我为自己设定了一个简单的目标,即制作一个从空到满的进度条。这是我的畸形尝试:
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() 是应受谴责的。我如何在这里避免它?
【问题讨论】:
-
或者,如果你想做一些激动人心的事情,尝试运行一个算法并使用 StopWatch 对象从该算法测量一个步骤,然后你可以计算出该步骤将执行多少次,这样你就可以获得 TotalTime ,并基于此使用你的数学技能来获得当前阶段的百分比,所以我认为这会让你满意。
标签: c# winforms multithreading backgroundworker