Business.DownloadBusiness.DownloadFilesAsync C# (CSharp) Метод

DownloadFilesAsync() приватный Метод

Downloads the specified list of files.
private DownloadFilesAsync ( Business.DownloadItem downloadInfo, EventHandler callback ) : Task
downloadInfo Business.DownloadItem The information about the files to download.
callback EventHandler The function to call when download is completed.
Результат Task
        private async Task DownloadFilesAsync(DownloadItem downloadInfo, EventHandler<DownloadCompletedEventArgs> callback) {
            // Decrypt all URLs at the same time without waiting.
            List<Task> DecryptTasks = new List<Task>();
            foreach (var item in downloadInfo.Files) {
                DecryptTasks.Add(Task.Run(() => DownloadUrlResolver.DecryptDownloadUrl(item.Source)));
            }
            await Task.WhenAll(DecryptTasks.ToArray()).ConfigureAwait(false);

            if (!downloadInfo.IsCanceled) {
                // Download all files.
                List<Task> DownloadTasks = new List<Task>();
                foreach (var item in downloadInfo.Files) {
                    DownloadTasks.Add(DownloadVideoAsync(downloadInfo, item, callback));
                }
                await Task.WhenAll(DownloadTasks.ToArray()).ConfigureAwait(false);
            } else
                RaiseCallback(downloadInfo);
        }