fix(send): 修复文件上传进度计算逻辑
- 将进度字段类型从 double 改为 decimal 以提高精度 - 移除原有的进度更新频率限制逻辑 - 重构进度计算公式,使用已完成项目数与总项目数的比例 - 修复除零错误的处理逻辑 - 更新文件计数显示格式为完成数量/总数量dev2.0
parent
2df02c7136
commit
fad06a926b
|
|
@ -203,9 +203,9 @@ namespace HeBianGu.App.Disk
|
||||||
|
|
||||||
|
|
||||||
//文件上传进度
|
//文件上传进度
|
||||||
private double _progress;
|
private decimal _progress;
|
||||||
|
|
||||||
public double Progress
|
public decimal Progress
|
||||||
{
|
{
|
||||||
get { return _progress; }
|
get { return _progress; }
|
||||||
set
|
set
|
||||||
|
|
@ -549,19 +549,21 @@ namespace HeBianGu.App.Disk
|
||||||
private void UpdateProgress(object sender, ElapsedEventArgs e)
|
private void UpdateProgress(object sender, ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
if (UpLoadItems.Count == 0) return;
|
if (UpLoadItems.Count == 0) return;
|
||||||
|
|
||||||
// 限制进度更新频率
|
|
||||||
var now = DateTime.Now;
|
var now = DateTime.Now;
|
||||||
|
/*// 限制进度更新频率
|
||||||
|
|
||||||
if ((now - _lastProgressUpdate).TotalMilliseconds < 500) // 至少500ms更新一次
|
if ((now - _lastProgressUpdate).TotalMilliseconds < 500) // 至少500ms更新一次
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
double currentBytes = UpLoadItems.Sum(r => r.Double2);
|
double currentBytes = UpLoadItems.Sum(r => r.Double2);
|
||||||
double totalBytes = UpLoadItems.Sum(r => r.Double1);
|
double totalBytes = UpLoadItems.Sum(r => r.Double1);*/
|
||||||
|
FileCount = (CompleteItems.Count) + "/" + (UpLoadItems.Count + CompleteItems.Count);
|
||||||
// 避免除零错误
|
// 避免除零错误
|
||||||
double progress = totalBytes > 0 ? Math.Round((currentBytes / totalBytes) * 100, 2) : 0;
|
var progress = UpLoadItems.Count > 0
|
||||||
|
? Math.Round((decimal)(CompleteItems.Count / (UpLoadItems.Count + CompleteItems.Count)) * 100, 2)
|
||||||
|
: 0;
|
||||||
|
|
||||||
Application.Current.Dispatcher.Invoke(() =>
|
Application.Current.Dispatcher.Invoke(() =>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue