码迷,mamicode.com
首页 > 其他好文 > 详细

实时读取进度条当前进度

时间:2015-01-09 20:55:12      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

技术分享   

最近做了一个 自动升级程序  在  下载文件和 解压缩文件时  用到了 进度条        今天先把  进度条的使用  记录下 改天有时间 把自动升级 程序  再记录进来 

进度条  读取  离不开 线程        现在用两种方法 实现这个效果

一、用VS 里自带的Timer控件     

  int A =1;
        private void timer1_Tick(object sender, EventArgs e)
        {
            if(A<100)
            {
                A++;
                progressBar1.Value = A;
                label1.Text = A.ToString();
            }
        }

这个比较简单   在 【开始计数】事件中 启动 Timer        但是这种方法 有局限性        不灵活  下面 我们用  线程和委托 来实现 这个效果    这种方法  比较灵活 自由度高

二、用线程和委托 实现 进度条的读取

System.Threading.Thread tt;
        public delegate void SetNum(int i);
        private void SetText()
        {
            for (int a = 1; a <= 100; a++)
            {
                if (this.InvokeRequired)
                {
                    this.Invoke(new SetNum(SetNumDo), a);
                }
                Thread.Sleep(10);
            }
        }
        public void SetNumDo(int i)
        {
            progressBar1.Value = i;
            label1.Text = i.ToString();
        }   

 声明 委托   实现委托    然后在【开始计数】事件中 开启线程   调用

  tt = new Thread(() =>
            {
                SetText();
            });
            tt.IsBackground = true;
            tt.Start();

实时读取进度条当前进度

标签:

原文地址:http://www.cnblogs.com/lzsin/p/4214086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!