Private Sub DownloadAndTrackProgress (url As String) As ResumableSub
Log("DownloadAndTrackProgress")
Dim j As HttpJob
j.Initialize("", Me)
j.Download(url)
Dim TaskToJob As Map = HttpUtils2Service.TaskIdToJob
Do While HttpUtils2Service.TaskIdToJob.IsInitialized = False
Log("Waiting for HttpUtils2Service to be ready.")
Sleep(30)
Loop
Log("Checking Tasks")
Dim TaskId As Int
Do While TaskId = 0
For Each id As Int In TaskToJob.Keys
If TaskToJob.Get(id) = j Then
TaskId = id
Log("TaskId="&id)
Exit
End If
Next
Sleep(10)
Loop
Dim b() As Boolean = Array As Boolean(False)
TrackProgress(j, b, TaskId)
Wait For (j) JobDone (j As HttpJob)
b(0) = True
j.Release
Log("Database Downloaded")
Return j.Success
End Sub
Private Sub TrackProgress (j As HttpJob, Stop() As Boolean, TaskId As Int)
Log("Track Progress")
Do While Stop(0) = False
If j.Out.IsInitialized Then
Dim TotalLength As Long = j.Response.ContentLength
Dim size As Long = File.Size(HttpUtils2Service.TempFolder, TaskId)
Log(size & " of " & TotalLength & " downloaded")
pbDownload.Progress=Round((size*100)/TotalLength)
End If
Sleep(100)
Loop
pbDownload.Progress=Round((size*100)/TotalLength)
Log("Database: Downloaded: " & size & " should equal " & TotalLength)
End Sub