Laden Sie mehrere Dateien async und warten Sie, bis alle von Ihnen zu beenden, bevor die Ausführung des restlichen Codes

Ich versuche mehrere Dateien herunterladen aus dem internet und erwarten für alle von Ihnen zu beenden. Dies ist eine C# - Konsolenanwendung, die ich verwende, also keine Fortschrittsanzeige event-handler erforderlich sein sollte. Allerdings ist es derzeit nur weiter, um code auszuführen, obwohl alle Dateien nicht heruntergeladen wurden.

  • 1.Der Download aller Dateien!
  • 2.Fertig Download-Datei Eine
  • 3.Das Herunterladen abgeschlossen ist, alle Dateien!
  • 4.Nach Dem Herunterladen Die Datei B
  • 5.Nach Dem Herunterladen Die Datei C

Wie würden Sie erwarten, bis alle asynchronen download-Dateien sind fertig.

 private void DownloadMultipleFiles(List<DocumentObject> doclist)
    {
        foreach(var value in doclist){
            try
            {
                using (WebClient webClient = new WebClient())
                {
                    string downloadToDirectory = @Resources.defaultDirectory + value.docName;
                    webClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
                    webClient.DownloadFileCompleted += client_DownloadFileCompleted;
                    webClient.DownloadFileAsync(new Uri(value.docUrl), @downloadToDirectory);

                    //Add them to the local
                    Context.listOfLocalDirectories.Add(downloadToDirectory);
                }         
            }
            catch (Exception)
            {
                Errors.printError("Failed to download File: " + value.docName);
            }
        }
    }

InformationsquelleAutor user2100493 | 2013-05-13

Schreibe einen Kommentar