zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    ora-01847:月份中日的值必须介于 1 和当月最后一日之间
    (转)ORACLE中关于外键缺少索引的探讨和总结
    (转) Oracle性能优化-读懂执行计划
    shutdown immediate 持久无法关闭数据库之解决方案
    Oracle11g adump目录下面.aud增长导致空间撑满无法删除导致CRS无法启动的解决方法
    linux几种常见的文件内容查找和替换命令
    unzip解压3G或者4G以上文件失败的解决方法
    IMP-00058: ORACLE error 1882 encountered
    AIX文件系统/var空间100%的问题
    html5手机网站需要加的那些meta/link标签,html5 meta全解(转)
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/fdfdsfdsfdsfds.html
Copyright © 2011-2022 走看看