//funkce která bude vykonávána v tásku, tuto funkci je možné přepsat tak, že použijeme DownloadStringAsync() ale je to v podstatě to samé jako vztvoření vlastního tásku private WebsiteDataModel DownloadWebsite(string websiteURL) { WebsiteDataModel output = new WebsiteDataModel(); WebClient client = new WebClient(); output.WebsiteUrl = websiteURL; output.websiteData = client.DownloadString(websiteURL); return(output); }
//Asynchroní funkce 1, v podstatě pouze uvolňuje hlavní vlákno. public async Task RunDownloadAsync() { Stopwatch watch = Stopwatch.StartNew(); foreach (string site in PrepData) { WebsiteDataModel result = await Task.Run(() => DownloadWebsite(site)); Console.WriteLine($"{result.WebsiteUrl} : {result.websiteData.Length}"); } watch.Stop(); Console.WriteLine(watch.ElapsedMilliseconds); }