进度条要用到异步委托,不然界面会假死
先声明
private delegate void 进度条委托( int myInt );
private 进度条委托 进度条委托变量名;
在窗体中添加个按钮,点击开始,添加事件
private void button进度条_Click( object sender , EventArgs e )
{
进度条委托变量名 = new 进度条委托 (进度条委托方法);
Thread thread = new Thread (new ThreadStart (进度条数数));
thread.Start ();
}
最后,添加委托方法
private void 进度条数数()
{
while(true)
{
if(this.InvokeRequired)
{
if(Pint > 20)
{
MessageBox.Show ("进度条最大了");
break;
}
else
{
this.BeginInvoke (进度条委托变量名 , Pint++);
}
}
else
{
MessageBox.Show ("在同一线程");
break;
}
Thread.Sleep (200);
}
}
private void 进度条委托方法( int myInt )
{
label进度条最大数.Text = myInt.ToString ();
myTextBox.Text = myInt.ToString ();
myTextBox.Refresh ();
label进度条最大数.Refresh ();
progressBar1.Value = myInt;
progressBar1.Refresh ();
}