Public Sub downloadFile(ByVal url As String)
LogFile.displayMessage("add url=" & url)
downloadURLs.Enqueue(url)
If t Is Nothing Then
LogFile.displayMessage("create new thread")
t = New Thread(AddressOf ThreadedDownloadFile)
End If
If Not t.IsAlive Then
LogFile.displayMessage("start thread")
t.Start()
End If
End Sub
Private Sub download()
LogFile.displayMessage("thread running count=" & downloadURLs.Count)
If downloadURLs.Count > 0 Then
Dim client = New WebClient()
AddHandler client.DownloadFileCompleted, AddressOf downloadFileCompleted
AddHandler client.DownloadProgressChanged, AddressOf downloadProgressChanged
Dim url = downloadURLs.Dequeue()
LogFile.displayMessage("downloading url=" & url)
url = WebRequest.Create(url).GetResponse.ResponseUri.AbsoluteUri
Dim fileName = url.Substring(url.LastIndexOf("/") + 1)
progress = 0
LogFile.displayMessage("downloading NOW NOW NOW url=" & url)
client.DownloadFile(New Uri(url), localAddress & fileName)
End If
LogFile.displayMessage("thread end")
End Sub
Private Sub downloadFileCompleted() 'ByVal sender As Object, ByVal e As DownloadStringCompletedEventArgs)
LogFile.displayMessage("download complete ") ' & e.Result)
LogFile.displayMessage("set next download going")
download()
End Sub
但是在第二輪它獲取了url然後停在下載文件處。 它也用downloadfileasync
。爲什麼webclient不能在第二次調用時下載VB.NET
我看到很多網頁討論這個,但沒有一樣解決它
沒有人知道這可怎麼固定?
額外的細節
我做啓動一個新的線程,但無論他們似乎都工作帶來極大的第一次,但隨後在第二個電話我該怎麼辦呢,webclient.downloadfile或downloadfileasync等 ,他們看起來似乎是在文件出現時下載的,但進度調用永遠不會完成,並且永遠不會完成。
我試過配置,然後什麼都沒有,然後重新聲明它,甚至強制垃圾收集處理後,什麼也沒有。
但它仍然不想工作。
我正在探索在做轉移自己,通過物流
遺憾的佈局,我不能讓代碼標籤的工作,如果有些可以解釋他們是如何工作我會改正。 – f1wade 2012-08-08 12:06:02