private WebSiteDataModel DownloadWebSite(string WebSiteUrl) { WebSiteDataModel output = new WebSiteDataModel(); WebClient client = new WebClient(); output.WebsiteUrl = WebSiteUrl; output.WebsiteData = client.DownloadString(WebSiteUrl); return(output); }
private void RunDownLoadSync() { List <string> websites = PrepData(); foreach (string site in websites) { WebSiteDataModel results = DownLoadWebsite(site); ReportWebSiteInfo(results); } }
private static async Task <WebSiteDataModel> DownloadWebSiteAsync(string WebSiteUrl) { WebSiteDataModel output = new WebSiteDataModel(); WebClient client = new WebClient(); output.WebsiteUrl = WebSiteUrl; output.WebsiteData = await client.DownloadStringTaskAsync(WebSiteUrl); return(output); }
private List <WebSiteDataModel> RunDownloadParalelSync() { List <string> webSites = PrepData(); List <WebSiteDataModel> output = new List <WebSiteDataModel> (); Parallel.ForEach <string> (webSites, (site) => { WebSiteDataModel results = DownloadWebSite(site); output.Add(results); ReportWebsiteInfo(results, 0); }); return(output); }
private void RunDownloadSync() { List <string> webSites = PrepData(); foreach (string site in webSites) { var watch = Stopwatch.StartNew(); WebSiteDataModel results = DownloadWebSite(site); watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; ReportWebsiteInfo(results, elapsedMs); } }
public async Task <List <WebSiteDataModel> > RunDownloadParalelAsyncV2(IProgress <ProgressReportModel> progress) { List <string> webSites = PrepData(); List <WebSiteDataModel> output = new List <WebSiteDataModel> (); ProgressReportModel report = new ProgressReportModel(); await Task.Run(() => { Parallel.ForEach <string> (webSites, (site) => { WebSiteDataModel results = DownloadWebSite(site); output.Add(results); report.SiteDownloaded = output; report.PercentageComplete = (output.Count * 100) / webSites.Count; progress.Report(report); }); }); return(output); }
private async Task <List <WebSiteDataModel> > RunDownloadAsyncList(IProgress <ProgressReportModel> progress, CancellationToken cts) { List <string> webSites = PrepData(); List <WebSiteDataModel> output = new List <WebSiteDataModel> (); ProgressReportModel report = new ProgressReportModel(); foreach (var item in webSites) { WebSiteDataModel results = await DownloadWebSiteAsync(item); output.Add(results); cts.ThrowIfCancellationRequested(); report.SiteDownloaded = output; report.PercentageComplete = (output.Count * 100) / webSites.Count; progress.Report(report); } return(output); }
private void ReportWebsiteInfo(WebSiteDataModel results, long seconds = 0) { textBox1.Text += $"{results.WebsiteUrl} downloaded: {results.WebsiteData.Length} characters long ,downloaded {seconds} seconds {Environment.NewLine} "; }