2009-10-23 4 views
0
Imports System.Net 
Public Class DownloadStuff 
    Dim downloader As New WebClient() 
    Private Sub Progress_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Progress.Validated 
     AddHandler downloader.DownloadProgressChanged, AddressOf DownloadChangedHandler 

     Dim uri As New Uri("http://www.example.com/example.txt") 
     downloader.DownloadFileAsync(uri, "C:\example.txt") 
    End Sub 
    Private Sub DownloadChangedHandler(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) 
     Progress.Maximum = CInt(e.TotalBytesToReceive) 
     Progress.Value = CInt(e.BytesReceived) 
     Application.DoEvents() 
    End Sub 
End Class 

이것은 내 코드이지만 DownloadProgressChanged 이벤트는 절대로 실행되지 않습니다. (여기에 예제 URL을 사용하고 있지만 기본 내용은 동일합니다.)WebClient를 사용하여 파일을 다운로드했지만 vb.net에서 다운로드 정보를 가져올 수 있습니다.

내가 뭘 잘못하고 있니? 진행률은 ProgressBar입니다.

이것은 VB.net에 있습니다.

MSDN에서 그들은 GetWebRequest를 무시하는 것에 대해 언급했지만 그 작업이나 수행 방법을 모릅니다.

업데이트 : 아직 진행 상황이 없으므로 핸들러를 시작하는 방법을 알 수 없습니다.

답변

1

이 시도 :

Sub Main() 

    Dim client As WebClient = New WebClient() 
    AddHandler client.DownloadProgressChanged, AddressOf DownloadProgressCallback 
    client.DownloadFileAsync(New Uri("..."), "data.txt") 

End Sub 

Private Sub DownloadProgressCallback(_ 
    ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) 

    Console.WriteLine(e.ProgressPercentage) 

End Sub 

매번 나는 AddHandlerHandles 나는 현기증을 참조하십시오.

+0

작동하지 않음>. http://www.developerfusion.com/tools/convert/csharp-to-vb/ <--- 내가 시도한 것입니다. – Cyclone

+0

그건 제가 본질적으로 가지고 있었던 것입니다. 콜백 절대 실행되지 않습니다. – Cyclone

관련 문제