//iterate over ebay from page 1 till lastpage ,if -1 till lastpage public void Loop(int lastpage) { int checkingPageIndex = 1; try { foreach (KeyValuePair <String, List <String> > entry in _urls) { String key = entry.Key; // Do something here List <EbayItem> list = new List <EbayItem>(); foreach (String s in entry.Value) { String starturl = s; while (starturl != null && checkingPageIndex != lastpage + 1) { Console.WriteLine(this.GetType().Name + " checking " + starturl); string filename = string.Format("ebay{0}.html", checkingPageIndex); string content = _goblin.FetchHtml(starturl); //blocking call(?) CreateDocument(content, filename); Console.WriteLine("before adding : " + list.Count); list.AddRange(CreateItems(filename)); Console.WriteLine("after adding : " + list.Count); Console.WriteLine(this.GetType().Name + " finished reading page " + checkingPageIndex); starturl = NextPage(starturl, checkingPageIndex); checkingPageIndex++; } } Console.WriteLine("after finish url : " + list.Count); checkingPageIndex = 1; _itemsList.Add(key, list); } } catch (Exception e) { Console.WriteLine(this.GetType().Name + " Error : Loop"); Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } }