Ich verwende einen WebClient und lade gleichzeitig 4 Dateien herunter. Die Dateien werden parallel heruntergeladen und ich kann sehen, dass sich die Dateigröße im Ordner ändert. Jetzt möchte ich den Fortschrittsbalken für jede einzelne Datei anzeigen. Hier ist, was ich bisher versucht habe, aber der Fortschritt ist nicht passiert. Kann jemand bitte helfenWie man einzelne ProgressBar für parallelen Download zeigt?
private void Button_Click(object sender, RoutedEventArgs e)
{
System.Net.ServicePointManager.DefaultConnectionLimit = 10;
List<String> files = new List<String>();
String localPath = "";
files.Add(file1);
files.Add(file2);
files.Add(file3);
files.Add(file4);
foreach (String fi in files)
{
localPath = "C:\\Download\\" + fi.Split('/')[5].ToString();
WebClient client = new WebClient();
client.DownloadProgressChanged += (sender1, e1) => client_DownloadProgressChanged(sender1, e1, z);
client.DownloadFileAsync(new Uri(fi), localPath, count);
count += 1;
}
}
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e, int RowNumber)
{
ProgressBar[] pb = new ProgressBar[4];
pb[RowNumber-1] = new ProgressBar();
pb[RowNumber-1].Width = 400;
pb[RowNumber-1].Height =20;
pnl.Children.Add(pb[RowNumber-1]);
pb[RowNumber-1].Value = e.ProgressPercentage;
}
Ok Ich ersetzte die Zeile, um zusätzliche Parameter zu übergeben, jedoch gibt es Fehler client.DownloadProgressChanged + = (Absender, e) => client_DownloadProgressChanged (Absender, e, z); Ein lokaler variabler Absender kann in diesem Bereich nicht deklariert werden. – SSK
Können Sie meinen Code ändern, um einen dieser – SSK
"Ein lokaler variabler Absender kann nicht in diesem Bereich deklariert werden" ist, weil Sie 1. Methode 'Button_Click" -Parameter namens Absender haben. Ändern Sie einfach den Namen der doppelten Variablennamen –