예제 #1
0
        public void DownloadProgressChanged(object sender, DownloadEventArgs e)
        {
            if (_lastTime.AddSeconds(1) <= DateTime.UtcNow)
            {
                _downloadSpeed = (int)((e.CurrentFileSize - _lastSize) / (DateTime.UtcNow - _lastTime).TotalSeconds);
                if (_downloadSpeed < 0)
                {
                    _downloadSpeed = 0;
                }
                _lastSize = e.CurrentFileSize;
                _lastTime = DateTime.UtcNow;
            }

            Dispatcher.Invoke(() =>
            {
                DownloadSpeed.text = FormatUtility.FormatSizeBinary(_downloadSpeed, 2) + "/s";;
            });
        }