namespace AsyncDemoApp1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void executeSync_Click(object sender, RoutedEventArgs e)
{
var watch = System.Diagnostics.Stopwatch.StartNew();
RunDownloadSync();
watch.Stop();
var elapsedMs = watch.ElapsedMilliseconds;
resultsWindow.Text += $"Total execution time: {elapsedMs}";
}
private List<string> PrepData()
{
List<string> output = new List<string>();
resultsWindow.Text = "";
output.Add("https://www.yahoo.com");
output.Add("https://www.cnn.com");
output.Add("https://www.microsoft.com");
output.Add("https://www.google.com");
output.Add("https://www.stackoverflow.com");
return output;
}
private void RunDownloadSync()
{
List<string> websites = PrepData();
foreach(string site in websites)
{
WebsiteDataModel results = DownloadWebsite(site);
ReportWebsiteInfo(results);
System.Threading.Thread.Sleep(1000);
}
}
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 ReportWebsiteInfo(WebsiteDataModel data)
{
resultsWindow.Text += $"{data.WebsiteUrl} downloaded: {data.WebsiteData.Length} characters long. {Environment.NewLine}";
}
}
}
namespace AsyncDemoApp1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void executeSync_Click(object sender, RoutedEventArgs e)
{
var watch = System.Diagnostics.Stopwatch.StartNew();
RunDownloadSync();
watch.Stop();
var elapsedMs = watch.ElapsedMilliseconds;
resultsWindow.Text += $"Total execution time: {elapsedMs}";
}
private List<string> PrepData()
{
List<string> output = new List<string>();
resultsWindow.Text = "";
output.Add("https://www.yahoo.com");
output.Add("https://www.cnn.com");
output.Add("https://www.microsoft.com");
output.Add("https://www.google.com");
output.Add("https://www.stackoverflow.com");
return output;
}
private void RunDownloadSync()
{
List<string> websites = PrepData();
foreach(string site in websites)
{
WebsiteDataModel results = DownloadWebsite(site);
ReportWebsiteInfo(results);
System.Threading.Thread.Sleep(1000);
}
}
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 ReportWebsiteInfo(WebsiteDataModel data)
{
resultsWindow.Text += $"{data.WebsiteUrl} downloaded: {data.WebsiteData.Length} characters long. {Environment.NewLine}";
}
}
}