WPF下载文件并且动态显示进度

前台新建一个控件ProgressBar控件,并命名为pbDown
            WebRequest request = WebRequest.Create("http://files.cnblogs.com/fornet/404.rar");
            WebResponse respone = request.GetResponse();
            pbDown.Maximum = respone.ContentLength;
            ThreadPool.QueueUserWorkItem((obj) =>
                {
                    Stream netStream = respone.GetResponseStream();
                    Stream fileStream =new FileStream(@"d:404.rar",FileMode.Create);
                    byte[] read = new byte[1024];
                    long progressBarValue = 0;
                    int realReadLen = netStream.Read(read, 0, read.Length);
                    while (realReadLen > 0)
                    {
                        fileStream.Write(read,0, realReadLen);
                        progressBarValue += realReadLen;
                        pbDown.Dispatcher.BeginInvoke(new ProgressBarSetter(SetProgressBar), progressBarValue);
                        realReadLen = netStream.Read(read, 0, read.Length);
                    }
                    netStream.Close();
                    fileStream.Close();

                }, null);
更新UI:
        public delegate void ProgressBarSetter(double value);
        public void SetProgressBar(double value)
        {
            pbDown.Value =value;
        }

原文地址:https://www.cnblogs.com/sntetwt/p/8888718.html