From 3be93df63f15660186787598f92379f4199c2602 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Mon, 25 Apr 2022 19:07:09 +0800 Subject: [PATCH] bug fix --- v2rayN/v2rayN/Base/HttpClientHelper.cs | 25 ++++++++----------------- v2rayN/v2rayN/Handler/DownloadHandle.cs | 4 ++-- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/v2rayN/v2rayN/Base/HttpClientHelper.cs b/v2rayN/v2rayN/Base/HttpClientHelper.cs index a8a777dc..7ae914f7 100644 --- a/v2rayN/v2rayN/Base/HttpClientHelper.cs +++ b/v2rayN/v2rayN/Base/HttpClientHelper.cs @@ -162,7 +162,7 @@ namespace v2rayN.Base } } - public async Task DownloadDataAsync4Speed(HttpClient client, string url, IProgress progress, CancellationToken token) + public async Task DownloadDataAsync4Speed(HttpClient client, string url, IProgress progress, CancellationToken token) { if (string.IsNullOrEmpty(url)) { @@ -176,15 +176,15 @@ namespace v2rayN.Base throw new Exception(string.Format("The request returned with HTTP status code {0}", response.StatusCode)); } - var total = response.Content.Headers.ContentLength.HasValue ? response.Content.Headers.ContentLength.Value : -1L; - var canReportProgress = total != -1 && progress != null; + //var total = response.Content.Headers.ContentLength.HasValue ? response.Content.Headers.ContentLength.Value : -1L; + //var canReportProgress = total != -1 && progress != null; using (var stream = await response.Content.ReadAsStreamAsync()) { var totalRead = 0L; var buffer = new byte[1024 * 64]; var isMoreToRead = true; - var progressPercentage = 0; + string progressSpeed = string.Empty; DateTime totalDatetime = DateTime.Now; do @@ -216,21 +216,12 @@ namespace v2rayN.Base totalRead += read; TimeSpan ts = (DateTime.Now - totalDatetime); - var speed = totalRead * 1d / ts.TotalMilliseconds / 1000; - if (canReportProgress) + var speed = (totalRead * 1d / ts.TotalMilliseconds / 1000).ToString("#0.0"); + if (progress != null) { - var percent = Convert.ToInt32((totalRead * 1d) / (total * 1d) * 100); - if (progressPercentage != percent) + if (progressSpeed != speed) { - progressPercentage = percent; - progress.Report(speed); - } - } - else if (progress != null) - { - if (progressPercentage != Convert.ToInt32(speed * 10)) - { - progressPercentage = Convert.ToInt32(speed * 10); + progressSpeed = speed; progress.Report(speed); } } diff --git a/v2rayN/v2rayN/Handler/DownloadHandle.cs b/v2rayN/v2rayN/Handler/DownloadHandle.cs index 50ea02c1..b7fb00d5 100644 --- a/v2rayN/v2rayN/Handler/DownloadHandle.cs +++ b/v2rayN/v2rayN/Handler/DownloadHandle.cs @@ -46,12 +46,12 @@ namespace v2rayN.Handler Proxy = webProxy }); - var progress = new Progress(); + var progress = new Progress(); progress.ProgressChanged += (sender, value) => { if (UpdateCompleted != null) { - string msg = string.Format("{0} M/s", value.ToString("#0.0")).PadLeft(9, ' '); + string msg = string.Format("{0} M/s", value).PadLeft(9, ' '); UpdateCompleted(this, new ResultEventArgs(false, msg)); } };