Example #1
0
 private void ProgressInfo_ProgressChanged(object sender, ListOfWebsiteInfo e)
 {
     progressBar1.Value = e.Progress;
     //List<WebsiteInfo> result = new List<WebsiteInfo>();
     //result.AddRange(e.WebSiteInfos);
     //result.Add(new WebsiteInfo() { ContentLength = 20, URL = "Test1", WebsiteContent = "Test1" });
     //PrintContentInTextBox(result);
 }
        public async Task <List <WebsiteInfo> > DownLoadWebsiteContentAsyncWithCallBack(List <WebsiteInfo> urls, IProgress <ListOfWebsiteInfo> progressedURLs)
        {
            WebClient          httpClient        = new WebClient();
            List <WebsiteInfo> list              = new List <WebsiteInfo>();
            ListOfWebsiteInfo  listOfWebsiteInfo = new ListOfWebsiteInfo();

            foreach (WebsiteInfo item in urls)
            {
                item.WebsiteContent = await httpClient.DownloadStringTaskAsync(new Uri(item.URL));

                item.ContentLength = item.WebsiteContent.Length;
                list.Add(item);

                listOfWebsiteInfo.WebSiteInfos = list;
                listOfWebsiteInfo.Progress     = (list.Count * 100) / urls.Count;
                progressedURLs.Report(listOfWebsiteInfo);
            }
            return(list);
        }