第一步:设计界面不说了...注意需要引用 using System.Threading;
第二步:定义一个代理,用于更新ProgressBar的值(Value)

  1.         //更新进度列表
  2.         private delegate void SetPos(int ipos);

 

  1. 第三步:进度条值更新函数(参数必须跟声明的代理参数一样)
  1.         private void SetTextMessage(int ipos)
  2.         {
  3.             if (this.InvokeRequired)
  4.             {
  5.                 SetPos setpos = new SetPos(SetTextMessage);
  6.                 this.Invoke(setpos, new object[] { ipos});
  7.             }
  8.             else
  9.             {
  10.                 this.label1.Text = ipos.ToString() + "/100";
  11.                 this.progressBar1.Value = Convert.ToInt32(ipos);
  12.             }
  13.         }

第四步:函数实现

  1.         private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             Thread fThread = new Thread(new ThreadStart(SleepT));//开辟一个新的线程
  4.             fThread.Start();
  5.         }

第五步:新的线程执行函数:

  1.         private void SleepT()
  2.         {
  3.             for (int i = 0; i < 500; i++)
  4.             {
  5.                 System.Threading.Thread.Sleep(100);//没什么意思,单纯的执行延时
  6.                 SetTextMessage(100 * i / 500);
  7.             }
  8.         }

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-14
  • 2021-09-11
  • 2022-12-23
  • 2021-07-18
  • 2021-10-13
猜你喜欢
  • 2022-12-23
  • 2021-10-28
  • 2021-07-26
  • 2022-01-02
  • 2021-07-01
  • 2022-12-23
相关资源
相似解决方案