public async Task <IDictionary <string, LatestVersion> > GetLatestVersions(string[] packageNames, string rootFolder, bool preRelease) { console.WriteHighlighted($"Getting the latest package versions. Hang on....."); var sourceRepositories = GetSourceRepositories(rootFolder); var result = new ConcurrentBag <LatestVersion>(); int totalTicks = packageNames.Length; var options = new ProgressBarOptions { ProgressCharacter = '─', ProgressBarOnBottom = true }; using (var progressBar = new ProgressBar(totalTicks, "Getting latest package versions", options)) { await Task.WhenAll(packageNames.Select(name => GetLatestVersion(name, preRelease, sourceRepositories, result, progressBar))).ConfigureAwait(false); } return(result.ToDictionary(v => v.PackageName)); }