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";; }); }