private void RunDownloadParallelSync() { List <string> list = PrepData(); Parallel.ForEach <string>(list, (x) => { WebsiteDataModel result = DownloadSite(x); ReportWebsiteInfo(result); }); }
private async Task <WebsiteDataModel> DownloadSiteAsync(string url) { WebsiteDataModel webSite = new WebsiteDataModel(); WebClient client = new WebClient(); webSite.Url = url; webSite.Content = await client.DownloadStringTaskAsync(url); return(webSite); }
private WebsiteDataModel DownloadSite(string url) { WebsiteDataModel webSite = new WebsiteDataModel(); WebClient client = new WebClient(); webSite.Url = url; webSite.Content = client.DownloadString(url); return(webSite); }
private void RunDownloadSync() { List <string> list = PrepData(); foreach (var url in list) { WebsiteDataModel result = DownloadSite(url); ReportWebsiteInfo(result); } }
private async Task <List <WebsiteDataModel> > DownloadParralelAsync(IProgress <ProgressReportModel> progress) { List <string> list = PrepData(); List <WebsiteDataModel> output = new List <WebsiteDataModel>(); ProgressReportModel report = new ProgressReportModel(); await Task.Run(() => { Parallel.ForEach <string>(list, (x) => { WebsiteDataModel result = DownloadSite(x); output.Add(result); report.WebSites = output; report.Progress = (output.Count * 100) / list.Count; progress.Report(report); }); }); return(output); }
private async Task <List <WebsiteDataModel> > RunDownloadAsync(IProgress <ProgressReportModel> progress, CancellationToken cancellationToken) { List <string> list = PrepData(); List <WebsiteDataModel> output = new List <WebsiteDataModel>(); ProgressReportModel report = new ProgressReportModel(); foreach (var url in list) { WebsiteDataModel result = await DownloadSiteAsync(url); output.Add(result); cancellationToken.ThrowIfCancellationRequested(); report.WebSites = output; report.Progress = (output.Count * 100) / list.Count; progress.Report(report); } return(output); }
private void ReportWebsiteInfo(WebsiteDataModel data) { TextBox.Text += $"{data.Url} downloaded: {data.Content.Length} characters. {Environment.NewLine}"; }