• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

【C#利用后台动态加载数据】Winform“防界面卡死”【BackgroundWorker】类 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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 中






鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#中Datatime类用法总结发布时间:2022-07-13
下一篇:
C#使用Epplus导出Excel[4]:合并指定行发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap