C# 多线程使用progressBar进度条控件

该例子对为多线程使用progressBar的一个简单例子。

实现:

(1)计算progressBar运行时间(既进度条开始到结束的时间)

(2)利用多线程运行(用这个应该必须用多线程吧,否则没什么实际意义,因为你有进度条必然是要做其他的事情给予一个进度提示)

大概就如下图了:

完整代码如下:

引入命名空间:

  1. using System.Threading;  

完整代码:

  1. namespace ProgressBar  
  2. {  
  3.     public partial class Form1 : Form  
  4.     {  
  5.         public Form1()  
  6.         {  
  7.             InitializeComponent();  
  8.         }  
  9.   
  10.         DateTime dt;    //记时  
  11.         private void btnStart_Click(object sender, EventArgs e)  
  12.         {  
  13.             Thread myThread = new Thread(DoData);  
  14.             myThread.IsBackground = true;  
  15.             myThread.Start(int.Parse(txtWhileNumber.Text)); //线程开始  
  16.             dt = DateTime.Now;  //开始记录当前时间  
  17.         }  
  18.   
  19.         private delegate void DoDataDelegate(object number);  
  20.         /// <summary>  
  21.         /// 进行循环  
  22.         /// </summary>  
  23.         /// <param name="number"></param>  
  24.         private void DoData(object number)  
  25.         {  
  26.             if (progressBar1.InvokeRequired)  
  27.             {  
  28.                 DoDataDelegate d = DoData;  
  29.                 progressBar1.Invoke(d, number);  
  30.             }  
  31.             else  
  32.             {  
  33.                 progressBar1.Maximum = (int)number;  
  34.                 for (int i = 0; i < (int)number; i++)  
  35.                 {  
  36.                     progressBar1.Value = i;  
  37.                     Application.DoEvents();  
  38.                 }  
  39.                 MessageBox.Show(DateTime.Now.Subtract(dt).ToString());  //循环结束截止时间  
  40.             }  
  41.         }  
  42.   
  43.         private void btnClear_Click(object sender, EventArgs e)  
  44.         {  
  45.             progressBar1.Value = 0;  
  46.         }  
  47.     }  
  48. }  

若以上代码编译有问题可以到下面的地址下载完整项目文件:

http://download.csdn.net/source/3482668

原文地址:https://www.cnblogs.com/lvfeilong/p/fdfdsfdsfdsfds.html