首页 > 代码库 > [C#] C#并发编程-异步编程基础-报告进度
[C#] C#并发编程-异步编程基础-报告进度
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 =http://www.mamicode.com/ 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#并发编程-异步编程基础-报告进度
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。