private void DownloadFiles(List <FileBlock> files) { List <Task> downloadFilesTask = new List <Task>(); foreach (var file in files) { if (file.DownloadStatus == false) { downloadFilesTask.Add(Task.Run(() => { cloudService.DownloadCloudFile(file, toDownloadDirectoryPath); file.DownloadStatus = true; TransactionFile transactionFile = new TransactionFile(); transactionFile.Create(directory); })); } } Task.WaitAll(downloadFilesTask.ToArray()); }
private void DownloadDirectory(List <DirectoryBlock> subDirectories) { List <Task> downloadDirectoriesTask = new List <Task>(); foreach (var subDirectory in subDirectories) { if (subDirectory.DownloadStatus == false) { downloadDirectoriesTask.Add(Task.Run(() => { System.IO.Directory.CreateDirectory(toDownloadDirectoryPath + subDirectory.path); subDirectory.DownloadStatus = true; queue.Enqueue(subDirectory); TransactionFile transactionFile = new TransactionFile(); transactionFile.Create(directory); })); } } Task.WaitAll(downloadDirectoriesTask.ToArray()); }