Как переделать скорость скачивания?

Не получается переделать скорость скачивания в Class.
Приложение просто падает с ошибкой...
Использую данную махинацию:
static readonly string[] SizeSuffixes =
                  { "bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };

        static string SizeSuffix(Int64 value, int decimalPlaces = 1)
        {
            if (value < 0) { return "-" + SizeSuffix(-value, decimalPlaces); }

            int i = 0;
            decimal dValue = (decimal)value;
            while (Math.Round(dValue, decimalPlaces) >= 1000)
            {
                dValue /= 1024;
                i++;
            }

            return string.Format("{0:n" + decimalPlaces + "} {1}//s", dValue, SizeSuffixes[i]);
        }


Дальше у меня есть вот такая штука:
private string speed;
private void Wc_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
        {
            if (prevDownloadedSize == 0)
            {
                prevDownloadedSize = e.BytesReceived / 1024;
            }

            if (stopwatch.Elapsed.TotalSeconds >= 1)
            {
                var dKBytes = (e.BytesReceived / 1024) - prevDownloadedSize;
                currentDownloadedSize += dKBytes;
                speed = String.Format("{0}", SizeSuffix(Convert.ToInt64(dKBytes / stopwatch.Elapsed.TotalSeconds)));
                prevDownloadedSize = 0L;
                OnProgressChanged();
                stopwatch.Restart();
            }
        }
private void OnProgressChanged()
        {
            Events.DownloadProgressChangedEventArgs eventInfo;
            eventInfo = new Events.DownloadProgressChangedEventArgs() { NewPercentage = GetPercentage(), 
                Speed = Math.Round(double.Parse(speed)), DownloadedSize = currentDownloadedSize, AllSize = downloadProvider.Size };
           
            ProgressChanged?.Invoke(this, eventInfo);
        }
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Senior .NET developer
Это GUI программа?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы