VELOCIDADE E TEMPO DE DOWNLOAD

JAISONKLEMER 18/03/2014 19:06:25
#436238
Bom, tenho um gerenciador de downloads que estava em C#. Converti ele para VB.Net usando o Instant VB.

Tudo funcionou normal, somente a velocidade e o tempo estimado que não aparecem como deveria.
Aqui tá o código em C# em que funciona normalmente:
  void downloader_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
if (processing) return;
if (InvokeRequired) Invoke(new ProgressChangedEventHandler(downloader_ProgressChanged), sender, e);
else
{
try
{
processing = true;
progressBar1.Value = e.ProgressPercentage > 100 ? 100 : e.ProgressPercentage;
this.Text = [Ô]Baixando Video - [Ô] + e.ProgressPercentage + [Ô] %[Ô];
string speed = String.Format(new FileSizeFormatProvider(), [Ô]{0:s}[Ô], downloader.DownloadSpeed);
string ETA = downloader.ETA == 0 ? [Ô][Ô] : [Ô] [ [Ô] + FormatLeftTime.Format(((long)downloader.ETA) * 1000) + [Ô] ][Ô];
status_Label.Text = speed + ETA;
RefreshStatus();
}
catch { }
finally { processing = false; }
}
}


E aqui convertido para VB.NET

  Private Sub downloader_ProgressChanged(ByVal sender As Object, ByVal e As ProgressChangedEventArgs)
If processing Then
Return
End If
If InvokeRequired Then
Invoke(New ProgressChangedEventHandler(AddressOf downloader_ProgressChanged), sender, e)
Else
Try
processing = True
progressBar1.Value = If(e.ProgressPercentage > 100, 100, e.ProgressPercentage)
Me.Text = [Ô]Baixando Video - [Ô] & e.ProgressPercentage & [Ô] %[Ô]
Dim speed As String = String.Format(New FileSizeFormatProvider(), [Ô]{0:s}[Ô], downloader.DownloadSpeed)
Dim ETA As String = If(downloader.ETA = 0, [Ô][Ô], [Ô] [ [Ô] & FormatLeftTime.Format((CLng(downloader.ETA)) * 1000) & [Ô] ][Ô])
status_Label.Text = speed & ETA
RefreshStatus()
Catch
Finally
processing = False
End Try
End If
End Sub



Em C# fica assim:


Em VB.NET:


Alguem sabe me dizer onde está o erro?
NILSONTRES 18/03/2014 19:35:21
#436239
Aparentemente aqui:
Citação:

progressBar1.Value = If(e.ProgressPercentage > 100, 100, e.ProgressPercentage)


é iif e não if.

Tente tira o Try para que o código para no erro e vc descubra, ou coloque após o Catch uma msgbox
msgbox err.description
Faça seu login para responder