实时读取进度条当前进度

   

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

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

一、用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();

posted @ 2015-01-09 19:54  一叶孤城  阅读(2055)  评论(0编辑  收藏  举报