public static async Task FileHandler(string _URL, int _searchDepth) { string searchTerm = "Game"; Crawler.AddLink(_URL); string content = await Crawler.DownloadFile(_URL); int Foundterm = Crawler.SearchForPhrase(searchTerm, content); Console.WriteLine("'{2}' found {0} times in {1}", Foundterm, _URL, searchTerm); //Console.WriteLine(string.Join("\n", Crawler.WebsiteList(content))); _searchDepth -= 1; if (_searchDepth > 0) { List <Task> allTasks = new List <Task>(); foreach (string link in Crawler.WebsiteList(content)) { if (Crawler.AddLink(link)) { Task task = FileHandler(link, _searchDepth); allTasks.Add(task); } } await Task.WhenAll(allTasks.ToArray()); } }