This commit is contained in:
龙腾猫跃
2024-05-25 17:42:12 +08:00
parent 0bdef8648f
commit e1268cefdb
34 changed files with 768 additions and 526 deletions
+13 -5
View File
@@ -781,7 +781,7 @@ RequestFinished:
''' <summary>
''' 为不需要分割的小文件进行临时存储。
''' </summary>
Private SmailFileCache As List(Of Byte)
Private SmailFileCache As Queue(Of Byte)
''' <summary>
''' 文件的已下载大小。
@@ -1101,7 +1101,7 @@ NotSupportRange:
'创建缓存文件
If IsNoSplit Then
Info.Temp = Nothing
SmailFileCache = New List(Of Byte)
SmailFileCache = New Queue(Of Byte)
Else
Info.Temp = PathTemp & "Download\" & Uuid & "_" & Info.Uuid & "_" & RandomInteger(0, 999999) & ".tmp"
ResultStream = New FileStream(Info.Temp, FileMode.Create, FileAccess.Write, FileShare.Read)
@@ -1152,9 +1152,15 @@ NotSupportRange:
Info.DownloadDone += RealDataCount
If IsNoSplit Then
If HttpData.Count = RealDataCount Then
SmailFileCache.AddRange(HttpData)
'SmailFileCache.AddRange(HttpData)
For Each B In HttpData
SmailFileCache.Enqueue(B)
Next
Else
SmailFileCache.AddRange(HttpData.ToList.GetRange(0, RealDataCount))
'SmailFileCache.AddRange(HttpData.ToList.GetRange(0, RealDataCount))
For i = 0 To RealDataCount - 1
SmailFileCache.Enqueue(HttpData(i))
Next
End If
Else
ResultStream.Write(HttpData, 0, RealDataCount)
@@ -1456,7 +1462,9 @@ Retry:
Public Overrides Property Progress As Double
Get
If State >= LoadState.Finished Then Return 1
If Not Files.Any() Then Return 0 '必须返回 0,否则在获取列表的时候会错觉已经下载完了
SyncLock FilesLock
If Not Files.Any() Then Return 0 '必须返回 0,否则在获取列表的时候会错觉已经下载完了
End SyncLock
Return _Progress
End Get
Set(value As Double)