多线程更新进度条的疑问
private Class A
{
private ProgressBar proBar;
public A(ProgressBar bar)
{
proBar = bar;
}
public void SaveImg()
{
//保存图片
Dowork();
}
private delegate void DoWorkDelegate();
public void DoWork()
{
if (proBar.InvokeRequired)
{
DoWorkDelegate d = DoWork;
proBar.Invoke(d);
}
else
{
proBar.Value++;
Application.DoEvents();
//if()
}
}
}
//在Button点击事件中循环实例化线程
for(int i =0 ; i<=1000 ; i++)
{
Thread DownLoadPicThread = new Thread(new ThreadStart(imgInfo.FormatImg));
DownLoadPicThread.Start();
}
问题:
1、DoWork函数执行proBar.Invoke(d)后会等所有的图片保存了之后再更新进度条proBar,为什么会这样。是因为实例太多的线程,没有空闲时间吗,还是因为其他的?谢谢!
...全文



