zoukankan      html  css  js  c++  java
  • 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; 
        }
    }
  • 相关阅读:
    学习进度笔记
    学习进度笔记
    学习进度笔记
    学习进度笔记
    博雅数据机器学习10
    学习进度笔记
    HDFS上文件权限操作
    HBase的安装与使用
    hadoop完全分布式安装教程
    python安装easygui
  • 原文地址:https://www.cnblogs.com/xpvincent/p/2851806.html
Copyright © 2011-2022 走看看