Ich werde sagen, dass ich glaube, dass ein Abschluss, um zu erzwingen versucht, ist eine wirklich schlechte Idee. Es kann auf Code hinweisen, der synchrone Vorgänge nicht richtig verarbeitet, und eine Anwendung langsamer/weniger reaktionsfähig macht. Wenn Sie jedoch weiter fortfahren möchten, was ich für einen unangemessenen Weg halte, können Sie Ihren nächsten Download erst beginnen, wenn Ihr vorheriger abgeschlossen ist. Ein Beispiel:
async void SynchronousDownload()
{
string[] filesToDownload = new string[] {
//enter your list of download URLS here
};
Queue<DownloadOperation> downloadOperationList = new Queue<DownloadOperation>();
BackgroundDownloader downloader = new BackgroundDownloader();
foreach(string fileURL in filesToDownload)
{
string fileName = fileURL.Substring(fileURL.LastIndexOf("/") + 1);
var newFile = await DownloadsFolder.CreateFileAsync(fileName, CreationCollisionOption.GenerateUniqueName);
var x = downloader.CreateDownload(new Uri(fileURL), newFile);
downloadOperationList.Enqueue(x);
}
do
{
DownloadOperation d = downloadOperationList.Dequeue();
await d.StartAsync();
} while (downloadOperationList.Count > 0);
}
Wahrscheinlich verwenden Sie nicht den DownloadManager, sondern etwas anderes. Die gleichen Konzepte sollten gelten. Im obigen fange ich an, eine Datei herunterzuladen, und nach der Fertigstellung beginnt die nächste Datei.
Bitte posten Sie alle relevanten Code innerhalb Ihrer Frage. Sehr wenige Leute werden bereit sein, auf eine Nicht-Stack-Overflow-Seite zu gehen, geschweige denn eine Zip-Datei herunterladen und entpacken und versuchen, in Ihrem Projekt herauszufinden, worüber Sie gerade sprechen. Bitte lesen Sie [kurze, eigenständige, korrekte Beispiele] (http://sscce.org/). – Amadan
Sie können Dateien nicht asynchron, aber synchron herunterladen, um sicher zu sein, welcher Download zuerst abgeschlossen wird. – GeralexGR
@ Jerrak0s: Was meinen Sie mit: Sie können Dateien nicht asynchron sondern synchron herunterladen, um sicher zu sein, welcher Download zuerst abgeschlossen wird etc? Kann mir der Code oder die Probe geben? – Rose