双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

多线程更新进度条的疑问

BenBenBears BenBenBears 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

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,为什么会这样。是因为实例太多的线程,没有空闲时间吗,还是因为其他的?谢谢!
...全文
评论 11
收藏 已收藏
分享
返回顶部
BenBenBears
C# 111,129 成员 642,540 内容