public async void PatchStart(DownloadSingleCompleteDelegate callback) { bool isInstalledJava = await JAVAInstaller.isJavaInstalled(); if (isInstalledJava == false) { await JAVAInstaller.DownloadJava(); } downloadFileCount = patchDatas.Count; if (PatchCheck()) { Debug.WriteLine(PatchCheck()); downloadCompleteDelegate(downloadFileCount, downloadCompleteCount, downloadFailedCount); return; } else { foreach (var m in patchDatas) { await MakeDownloadURL(m); } System.Threading.Thread.Sleep(1000); foreach (var m in patchDatas) { DownloadFile(m, callback); } } }
public async void DownloadFile(PatchData data, DownloadSingleCompleteDelegate callback) { try { WebClient wc = new WebClient(); wc.DownloadFileAsync(new Uri(data.downloadURL), @"patchData\" + data.tempFileID + tempExtention); wc.DownloadFileCompleted += (object sender, AsyncCompletedEventArgs e) => { downloadCompleteCount += 1; callback(downloadFileCount, downloadCompleteCount, downloadFailedCount); if (downloadCompleteCount + downloadFailedCount == downloadFileCount) { OnPatchComplete(); } }; wc.Dispose(); } catch (Exception e) { downloadFailedCount += 1; callback(downloadFileCount, downloadCompleteCount, downloadFailedCount); if (downloadCompleteCount + downloadFailedCount == downloadFileCount) { OnPatchComplete(); } } }