实时读取进度条当前进度

   

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

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

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

转载于:https://www.cnblogs.com/lzsin/p/4214086.html

要在Java中实现实时读取进度的功能,你可以使用线程和回调函数来实现。下面是一个简单的示例: 首先,定义一个接口 `ProgressCallback`,其中包含一个用于接收进度更新的回调方法 `onProgressUpdate`: ```java public interface ProgressCallback { void onProgressUpdate(int progress); } ``` 然后,在你的主程序中创建一个实现了该接口的类,并实现 `onProgressUpdate` 方法,以便在每次更新进度时执行相应的操作: ```java public class ProgressBar implements ProgressCallback { @Override public void onProgressUpdate(int progress) { // 在这里更新进度条或执行其他操作 System.out.println("当前进度:" + progress + "%"); } } ``` 接下来,在你的主程序中创建一个线程来模拟进度更新,并在每次更新时调用回调方法: ```java public class Main { public static void main(String[] args) { ProgressBar progressBar = new ProgressBar(); // 创建一个线程来模拟进度更新 Thread progressThread = new Thread(new Runnable() { @Override public void run() { for (int i = 0; i <= 100; i++) { // 模拟耗时操作 try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } // 更新进度 progressBar.onProgressUpdate(i); } } }); // 启动线程 progressThread.start(); } } ``` 在上面的示例中,`ProgressBar` 类实现了 `ProgressCallback` 接口,并在 `onProgressUpdate` 方法中打印当前进度。然后,创建一个线程 `progressThread` 来模拟进度更新,每次更新时调用 `progressBar.onProgressUpdate` 方法。 当你运行上述代码时,你将看到每秒钟输出一次当前进度的消息,模拟了实时读取进度的功能。你可以根据实际需求,在 `onProgressUpdate` 方法中执行你想要的操作,比如更新进度条的显示或执行其他相关任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值