c# Progress<T>

c# Progress<T> 用于显示进度。。。。。。。。主要是利用IProgress<T> 的Report(T)方法:

        private void BtnDownload_Click(object sender, RoutedEventArgs e)
        {
            var pp = new Progress<string>();// or 直接传入参数 action:  var pp = new Progress<string>(s => { txt.Text = s; });
            pp.ProgressChanged += Pp_ProgressChanged;//如果直接传入参数 action就不需要额外的这个事件通知了。
            testProgress(pp);
           
        }
        private void Pp_ProgressChanged(object sender, string e)
        {
            txt.Text = e;
        }


        async void testProgress(IProgress<string> p) {

            for (int i = 0; i < 300; i++) {
              await  Task.Delay(10);
                p.Report("" + i);

            }
        }

  

原文地址:https://www.cnblogs.com/wgscd/p/13634036.html