public async Task <IEnumerable <string> > CreateInactiveCompanyList() { var companyRssTuples = await _companyRssRepository.GetAllCompanyRss(); // Thread-safe, only Add method is used. var inactiveCompanyList = new List <string>(); Parallel.ForEach(companyRssTuples, async companyRssTuple => { var rssUri = companyRssTuple.Item2; var date = await _rssParser.GetLastBuildDate(rssUri); if (date.Equals(DateTime.MinValue)) { return; } var days = (DateTime.Now - date).TotalDays; if (days >= _config.InactiveDays) { inactiveCompanyList.Add(companyRssTuple.Item1); } }); return(inactiveCompanyList); }