标签:
最近做了一个 自动升级程序 在 下载文件和 解压缩文件时 用到了 进度条 今天先把 进度条的使用 记录下 改天有时间 把自动升级 程序 再记录进来
进度条 读取 离不开 线程 现在用两种方法 实现这个效果
一、用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