• C#中进度条的使用


    如果在程序中直接更新进度条,是无法响应的。使用BackgroundWorker可以解决该问题。

    public partial class Form1 : Form
    {
        BackgroundWorker backgroundWorker1 = new backgroundWorker1;
        
        public Form1()
        {
            InitializeComponent();
            Shown += new EventHandler(Form1_Shown);
     
            backgroundWorker1.WorkerReportsProgress = true;  //允许报告进度
            backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);  //产生新的线程来处理任务
            backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);  //当调用ReportProgress会触发该事件
        }
        
        void Form1_Shown(object sender, EventArgs e)
        {
            backgroundWorker1.RunWorkerAsync(); //开始异步操作
        }
    
        void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            //在这里进行程序任务
            for (int i = 0; i <= 100; i++)
            {
                
                backgroundWorker1.ReportProgress(i);  // 报告进度给UI线程
                System.Threading.Thread.Sleep(100);  //模拟耗时较长的任务
            }
        }
        
        //返回到UI线程,更新进度条
        void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage; 
        }
    }
  • 相关阅读:
    应用层
    传输层
    一元函数微分学
    函数、极限、连续
    网络层习题与真题
    网络层
    数据链路层习题与真题
    二、使用kubeadm部署k8s
    一、Kubernetes概述
    二、rsync文件同步
  • 原文地址:https://www.cnblogs.com/xpvincent/p/2851806.html
Copyright © 2020-2023  润新知