111,125
社区成员
发帖
与我相关
我的任务
分享
//负责线程控制的类
class Manager
{
ProgressBar CalBar;
int CalLength;
public Manager(int CLenth, ProgressBar CBar) { CalBar = CBar; CalLength = CLenth; }
public void Cal()
{
CalBar.Minimum = 0;
CalBar.Maximum = CalLength;
CalBar.Value = 0;
for (int i = 0; i < CalLength; i++)
CalBar.Value++;
}
}
//由按钮触发的事件的捕捉
private void btnCal_Click(object sender, EventArgs e)
{
int CalLength = 100000;
Manager m = new Manager(CalLength, CalBar);// CalBar是进度条对象
Thread t = new Thread(m.Cal);
t.Start();
}
private delegate void delTest(int i);
private void button1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(new ThreadStart(Test));
thread.IsBackground = true;
thread.Start();
}
private void Test()
{
for(int i=0;i < 100;i++)
{
Thread.Sleep(100);
ShowProg(i);
}
}
private void ShowProg(int i)
{
if (this.InvokeRequired)
{
delTest t = delegate(int a)
{
this.progressBar1.Value = a;
};
this.Invoke(t,i);
}
}