public void Start() { progresslabels[progresslabels.Length - 1].Text = ""; progresslabels[progresslabels.Length - 1].Visible = true; lock (downloadQueue) { if (downloadQueue.Count > 0) { for (int i = 0; i < progressbars.Length; i++) { if (progressbars[i].Tag == null) { MegaFileDownload dd = downloadQueue.Dequeue(); dd.ProgressBar = progressbars[i]; dd.ProgressLabel = progresslabels[i]; dd.StartDownload(); if (downloadQueue.Count == 0) { break; } } } } } }
public void UpdateQueue(MegaFileDownload d) { lock (downloadQueue) { d.Finished = true; d.ProgressBar.Tag = null; d.ProgressBar.Value = 0; d.ProgressLabel.Visible = false; if (downloadQueue.Count > 0 && !cancellationTokenSource.IsCancellationRequested) { //if (d.ProgressBar.Tag == null) //{ MegaFileDownload newd = downloadQueue.Dequeue(); newd.ProgressBar = d.ProgressBar; newd.ProgressLabel = d.ProgressLabel; newd.StartDownload(); //} } if (finishedDownloads == downloads.Count && !cancellationTokenSource.IsCancellationRequested) { DownloadsFinishedForm downloadsFinishedForm = new DownloadsFinishedForm(downloadFolderPath, "All downloads are finished!"); downloadsFinishedForm.Show(); } } finishedDownloads++; progresslabels[progresslabels.Length - 1].Text = $"{finishedDownloads}/{downloads.Count} files finished"; }
public MegaDownload(MegaApiClient megaClient, List <CloudFile> files, ProgressBar[] progressBars, Label[] progressLabels, int overwriteMode = 3) { progressbars = progressBars; progresslabels = progressLabels; downloads = new List <MegaFileDownload>(); OverwriteMode = overwriteMode; MegaApiClient megaApiClient = new MegaApiClient(); megaApiClient.LoginAnonymous(); downloadFolderPath = MainForm.syncFolderPath + "/New Files " + DateTime.Now.Date.ToShortDateString(); try { foreach (CloudFile file in files) { MegaFileDownload megaFileDownload = new MegaFileDownload(megaApiClient, this, file.MegaNode, downloadFolderPath + file.Path); downloadQueue.Enqueue(megaFileDownload); downloads.Add(megaFileDownload); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }