public Task RemoveExpiredAsync() { return(Task.Run(() => { lock (DomainRecords) { var remove = new List <ResourceRecord>(); foreach (var record in DomainRecords.Where(record => record.IsExpired())) { remove.Add(record); } foreach (var record in remove) { DomainRecords.Remove(record); } } })); }