Пример #1
0
        public void InvokeAsync()
        {
            var progressChangeInfo = new ProgressChangeInfo();

            webclient = new System.Net.WebClient();
            sw.Start();

            webclient.DownloadFileCompleted += (s, e) => {
                sw.Reset();
                if (AsyncCompleted != null)
                {
                    AsyncCompleted.Invoke(this, e);
                }
            };

            webclient.DownloadProgressChanged += (s, e) => {
                string value = string.Format("{0} kb/s", (e.BytesReceived / 1024d / sw.Elapsed.TotalSeconds).ToString("0.00"));

                if (e.ProgressPercentage == 100)
                {
                    sw.Reset();
                }


                if (AsyncProgressChanged != null)
                {
                    progressChangeInfo.Percentage = e.ProgressPercentage;
                    progressChangeInfo.Speed      = value;

                    AsyncProgressChanged.Invoke(this, progressChangeInfo);
                }
            };


            webclient.DownloadFileAsync(uri, filePath);
        }
Пример #2
0
 /// <summary>
 /// Raises the AsyncProgressChanged event.
 /// </summary>
 /// <param name="e"></param>
 private void OnAsyncProgressChanged(ProgressEventArgs e)
 {
     AsyncProgressChanged?.Invoke(this, e);
 }