Пример #1
0
        private WebSiteDataModel DownloadWebSite(string WebSiteUrl)
        {
            WebSiteDataModel output = new WebSiteDataModel();
            WebClient        client = new WebClient();

            output.WebsiteUrl  = WebSiteUrl;
            output.WebsiteData = client.DownloadString(WebSiteUrl);
            return(output);
        }
Пример #2
0
        private void RunDownLoadSync()
        {
            List <string> websites = PrepData();

            foreach (string site in websites)
            {
                WebSiteDataModel results = DownLoadWebsite(site);
                ReportWebSiteInfo(results);
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
            }
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
 private void ReportWebsiteInfo(WebSiteDataModel results, long seconds = 0)
 {
     textBox1.Text += $"{results.WebsiteUrl} downloaded: {results.WebsiteData.Length} characters long ,downloaded {seconds} seconds {Environment.NewLine} ";
 }