2014-05-01 69 views
0

我有問題。我正在使用Visual Studio 2013(Visual Basic),並在我的電腦上一切正常,但其他沒有。DownloadFileAsync不工作/被調用。即使沒有下載文件,它也跳過到DownloadCompleted

示例:即使沒有下載的文件,client1.DownloadFileAsync也沒有被調用,並且client1_DownloadCompleted被調用。爲什麼只是跳過!

代碼(在DownloadButton_Click):`

  AddHandler client1.DownloadProgressChanged, AddressOf client_ProgressChanged 
      AddHandler client1.DownloadFileCompleted, AddressOf client1_DownloadCompleted 
      AddHandler client2.DownloadProgressChanged, AddressOf client_ProgressChanged 
      AddHandler client2.DownloadFileCompleted, AddressOf client2_DownloadCompleted 
      AddHandler client3.DownloadProgressChanged, AddressOf client_ProgressChanged 
      AddHandler client3.DownloadFileCompleted, AddressOf client3_DownloadCompleted 
      AddHandler client4.DownloadProgressChanged, AddressOf client_ProgressChanged 
      AddHandler client4.DownloadFileCompleted, AddressOf client1_DownloadCompleted 
      AddHandler client5.DownloadProgressChanged, AddressOf client_ProgressChanged 
      AddHandler client5.DownloadFileCompleted, AddressOf client2_DownloadCompleted 
      AddHandler client6.DownloadProgressChanged, AddressOf client_ProgressChanged 
      AddHandler client6.DownloadFileCompleted, AddressOf client3_DownloadCompleted 


      If CheckBox7.Checked Then 
       odkoliko = odkoliko + 1 
       Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
       client5.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/s/7wq47s49aw5qrps/Obrisi%20PMF%20Novi%20Sad.lnk"), filePath5) 
      End If 
      If CheckBox4.Checked Then 
       odkoliko = odkoliko + 1 
       Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
       client4.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/s/69q4pd281ka3lmf/Repair.exe"), filePath4) 
      End If 
      If CheckBox2.Checked Then 
       odkoliko = odkoliko + 1 
       Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
       client1.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/s/u4iy3katgl394wf/PMF%20Novi%20Sad%20UPDATE.exe"), filePath1) 
      End If 
      If CheckBox5.Checked Then 
       odkoliko = odkoliko + 1 
       Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
       client2.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/s/tuy0zspy1i1y84u/chatroom.html"), filePath2) 
      End If 
      If CheckBox3.Checked Then 
       odkoliko = odkoliko + 1 
       Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
       client6.DownloadFileAsync(New Uri("https://dl.dropboxusercontent.com/s/1n7oe7d1ms72qo3/Update.exe"), filePath6) 
      End If 
    End Select 
End Sub 

Private Sub client_ProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs) 

End Sub 

Private Sub client1_DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) 
    koliko = koliko + 1 
    Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
    AllDownloadFinished() 
End Sub 

Private Sub client2_DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) 
    koliko = koliko + 1 
    Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
    AllDownloadFinished() 
End Sub 

Private Sub client3_DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) 
    koliko = koliko + 1 
    Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
    AllDownloadFinished() 
End Sub 

Private Sub client4_DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) 
    koliko = koliko + 1 
    Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
    AllDownloadFinished() 
End Sub 

Private Sub client5_DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) 
    koliko = koliko + 1 
    Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
    AllDownloadFinished() 
End Sub 

Private Sub client6_DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) 
    koliko = koliko + 1 
    Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
    AllDownloadFinished() 
End Sub 

Public Sub AllDownloadFinished() 
    If koliko > odkoliko Then 
     Label6.Text = "GOTOVO!" 
     ProgressBar1.Style = ProgressBarStyle.Continuous 
     ProgressBar1.MarqueeAnimationSpeed = 0 
     Panel1.Visible = False 
     Panel2.Visible = False 
     Panel3.Visible = True 
    End If 
End Sub` 

正如我在我的電腦代碼的作品完美的,但是,我的朋友說的沒有。也許這個問題不在.NET Framework,Visual C++ Redistributable,Web Deployment或其他需要安裝的Microsoft應用程序中。

回答

0

您的代碼沒有檢查異步錯誤。一旦你看到錯誤,你就可以排除故障。

試試這個:

Private Sub client1_DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) 
    If e.Error IsNot Nothing Then 
     Msgbox(e.Error.Message) 
     Exit Sub 
    ElseIf e.Cancelled Then 
     Msgbox("Cancelled") 
     Exit Sub 
    End If 
    koliko = koliko + 1 
    Label8.Text = "Popravlja se " & koliko & "/" & odkoliko & " stavka!" 
    AllDownloadFinished() 
End Sub 

更多信息: http://msdn.microsoft.com/en-us/library/system.componentmodel.asynccompletedeventargs(v=vs.110).aspx

+0

我改變了代碼像你說的,它的示值誤差: 「論證‘提示’不能轉換爲類型‘字符串’。」 現在我需要找出哪一個是錯誤的......:/ – Bokyyy412

+0

我已經編輯,以糾正從Msgbox(e.Message)到Msgbox(e.Error.Message) –

+0

錯字我改變了它併成功編譯。然後當我運行程序它顯示我這個錯誤:「參數'提示'不能轉換爲類型'字符串'。」你知道問題在哪裏嗎? – Bokyyy412

相關問題