110,477
社区成员
发帖
与我相关
我的任务
分享
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();
}
Thread.Sleep(new Random().Next(10000));
各个线程休眠一段时间,控制权好像也回不到主线程,因为线程太多了namespace CSDemo.Test
{
public partial class FormTest : Form
{
public FormTest()
{
InitializeComponent();
}
A a;
private void button1_Click(object sender, EventArgs e)
{
progressBar1.Value = 0;
progressBar1.Maximum = 1000;
a = new A(progressBar1);
new Thread(() => {
for (int i = 0; i < 1000; i++)
{
Thread DownLoadPicThread = new Thread(new ThreadStart(a.SaveImg));
DownLoadPicThread.Start();
}
}).Start();
}
class A
{
private ProgressBar proBar;
public A(ProgressBar bar)
{
proBar = bar;
}
public void SaveImg()
{
Thread.Sleep(new Random().Next(10000));
//保存图片
DoWork();
}
private delegate void DoWorkDelegate();
public void DoWork()
{
if (proBar.InvokeRequired)
{
DoWorkDelegate d = DoWork;
proBar.Invoke(d);
}
else
{
proBar.Value++;
//Application.DoEvents();
//if()
}
}
}
}
}