using System.ComponentModel

直接使用EgProgressBar方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  BackgroundWorker Bw = new BackgroundWorker();
  ListView listView1 = new ListView();
  public void EgProgressBar()
  {
      DirectoryInfo di = new DirectoryInfo(@"C:/Windows");
      FileInfo[] fi = di.GetFiles();
      progressBar1.Maximum = fi.Length - 1; //设置进度条的最大值
      Bw.WorkerSupportsCancellation = true;
      Bw.WorkerReportsProgress = true;
      Bw.DoWork += new DoWorkEventHandler(Add); //绑定事件
      Bw.ProgressChanged += new ProgressChangedEventHandler(Progress);
      Bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(End);
      Bw.RunWorkerAsync();
  }
  public void Add(object sender, DoWorkEventArgs e)
  {
       
      DirectoryInfo di = new DirectoryInfo(@"C:/Windows");
      foreach (FileInfo item in di.GetFiles())
      {
          ListViewItem lvt = new ListViewItem();//用listviewItem来存储获取到文件的信息
          lvt.Text = item.FullName;
          lvt.SubItems.Add(DateTime.Now.ToLongTimeString());
          Thread.Sleep(500);
          
          Bw.ReportProgress(listView1.Items.Count, lvt);//把当前的进度报告出去,获取到第几个文件和该文件的信息
      }
 
  }
  public void Progress(object sender, ProgressChangedEventArgs e)
  {
      progressBar1.Value = e.ProgressPercentage;//获取第几个文件,用来改变进度条的进度
      ListViewItem lv = e.UserState as ListViewItem;
      listView1.Items.Add(lv);//把最新获取到的文件信息添加到listview
  }
  public void End(object sender, RunWorkerCompletedEventArgs e)
  {
       progressBar1.Value = 0;//进度条清0
  }

传递方法参数RunWorkerAsync(参数)

获取方法   DoWorkEventArgs    的    e.Argument

结束时判定 Dowork方法  e.result   自动​传递到completed 的e.result 中

【C#利用后台动态加载数据】Winform“防界面卡死”【BackgroundWorker】类的更多相关文章

  1. 微信小程序(五) 利用模板动态加载数据

    利用模板动态加载数据,其实是对上一节静态数据替换成动态数据:

  2. asp.net c# select 动态加载数据

    1.说明通过 asp.net,利用jQuery ,c#语言给 select控件动态加载数据.前端页面使用的是.aspx类型的HTML页面,后台使用MVC上的controller控制器 2.webcon ...

  3. Extjs-树 Ext.tree.TreePanel 动态加载数据

    先上效果图 1.说明Ext.tree.Panel 控件是树形控件,大家知道树形结构在软件开发过程中的应用是很广泛的,树形控件的数据有本地数据.服务器端返回的数据两种.对于本地数据的加载,在extjs的 ...

  4. AppCan学习笔记----关闭页面listview动态加载数据

    AppCan页面关闭 AppCan 的页面是由两个HTML组成,如果要完全关闭的话需要在主HTML eg.index.html中关闭,关闭方法:appcan.window.close(-1); 管道 ...

  5. [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件

    页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...

  6. C# 利用反射动态加载dll

    笔者遇到的一个问题,dll文件在客户端可以加载成功,在web端引用程序报错.解决方法:利用反射动态加载dll 头部引用加: using System.Reflection; 主要代码: Assembl ...

  7. mui 动态加载数据出现的问题处理 (silder轮播组件 indexedList索引列表 下拉刷新不能继续加载数据)

    mui-slider 问题:动态给mui的图片轮播添加图片,轮播不滚动. 解决:最后把滚动轮播图片的mui(".mui-slider").slider({interval: 300 ...

  8. ASP.NET MVC动态加载数据

    ASP.NET MVC动态加载数据,一般的做法是使用$.each方法来循环产生tabel: 你可以在html时先写下非动态的部分:  Source Code 上图中,有一行代码: <tbody ...

  9. js实现滚动条来动态加载数据

    主要angular2+es6 data:Array<any> //展示的数据 allData:Array<any> //全部的数据 size:number = 10 //每次动 ...

随机推荐

  1. Kali-linux绕过Utilman登录

    Utilman是Windows辅助工具管理器.该程序是存放在Windows系统文件中最重要的文件,通常情况下是在安装系统过程中自动创建的,对于系统正常运行来说至关重要.在Windows下,使用Wind ...

  2. ethereumjs/ethereumjs-block-3-tests

    之前可以先了解一下另一个模块,看本博客的ethereumjs/ethereumjs-common部分内容 通过tests测试文件能够帮助更好了解API的使用 ethereumjs-block/test ...

  3. 项目所有的证书文件路径iOS

    ~/Library/MobileDevice/Provisioning Profiles

  4. IT经理苏大强:我不吃,我不喝,我要赶项目!

    IT经理老苏的日常 1周,2周,3周 -- 为了公司的发展和孩子的奥利奥 这点短痛不算什么 Iron Cloud 微服务开发云[www.ironz.com] 高效满足业务需求 高速交付 驱动增长

  5. 3.Spring Cloud初相识--------Ribbon客户端负载均衡

    前言: 在生产环境中,未避免单点故障,每个微服务都会做高可用部署. 通白的说,就是每一个一模一样的服务会根据需求提供多分在多台机器上. 那么在大并发的情况下,如何分配服务可以快速得到响应,就成为了我们 ...

  6. 【Dubbo源码阅读系列】之 Dubbo SPI 机制

    最近抽空开始了 Dubbo 源码的阅读之旅,希望可以通过写文章的方式记录和分享自己对 Dubbo 的理解.如果在本文出现一些纰漏或者错误之处,也希望大家不吝指出. Dubbo SPI 介绍 Java ...

  7. @property & @synthesize & @dynamic 及相关属性作用探究

    @property : iOS6 引入关键词. @property name; 指示编译器自动生成 name 的 setter 和 getter 方法 : - (NSString *)name; - ...

  8. SpirteKit深度复制SKSpriteNode节点及convert转换其它Scene上的节点到当前场景坐标

    Playground输出的代码 ,注意右侧打印出的SpriteNode输出值,HAPPY_NODE的输出信息一致. SpriteNode //MARK:- 扩展SkSpriteNode属性 exten ...

  9. 纯 js 实现上传文件支持拖拽

    开发「bufpay.com 个人即时到账收款平台」 后台需要支持开发者的微信和支付宝二维码上传. <p> <button class="btn btn-primary&qu ...

  10. MySQL学习【第八篇索引优化】

    一.建立索引的原则(规范) 1.选择唯一性索引 只要可以创建唯一性索引的,一律创建唯一索引(因为速度快呀) 判断是否能创建唯一索引,用count(列名),count(distinct(列名))一样就能 ...