[C#] C#并发编程-异步编程基础-报告进度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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 = 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#并发编程-异步编程基础-报告进度的主要内容,如果未能解决你的问题,请参考以下文章