zoukankan      html  css  js  c++  java
  • C#并发编程-异步编程基础-报告进度

    [C#] C#并发编程-异步编程基础-报告进度

    时间:2017-03-06 14:37:56      阅读:374      评论:0      收藏:0 

     1     int ProgressRate = 0;
     2 
     3     private async void btnProgress_Click(object sender, EventArgs e)
     4     {
     5         ProgressRate = 0;
     6 
     7         var progress = new Progress<int>();
     8 
     9         //progress的进度改变
    10         progress.ProgressChanged += (obj1, obj2) =>
    11         {
    12             if (ProgressRate <= 100)
    13             {
    14                 this.lblProgress.Content = ProgressRate.ToString() + "%";
    15                 this.pbProgress.Value = ProgressRate;
    16             }
    17             else
    18             {
    19                 this.btnProgress.IsEnabled = true;
    20             }
    21 
    22         };
    23 
    24         this.btnProgress.IsEnabled = false;
    25         await ReportProgressAsync(progress);
    26     }
    27 
    28     //在此报告progress的进度,更改ProgressRate的值
    29     private async Task ReportProgressAsync(IProgress<int> progress = null)
    30     {
    31         while (ProgressRate <= 100)
    32         {
    33             if (progress != null)
    34             {
    35                 await Task.Delay(TimeSpan.FromMilliseconds(100));
    36                 progress.Report(ProgressRate++);
    37             }
    38         }
    39     }

    结果:

    技术分享

    [C#] C#并发编程-异步编程基础-报告进度

  • 相关阅读:
    makefile ifeq ($(LANG),) 判断操作系统
    MIPS 指令集速查
    ps ef|grep mh* 命令
    ulimit c unlimited 命令
    kill 9 2402 命令
    chmod R 777 命令
    计算机网络总结
    source 命令
    ./ 命令
    reboot f 命令
  • 原文地址:https://www.cnblogs.com/grj001/p/12223213.html
Copyright © 2011-2022 走看看