public void zScrape() { List <ElementScrapeInfo> completedScrapes = new List <ElementScrapeInfo>(); while (!m_Stop) { lock (m_Lock) { foreach (HtmlElement key in m_Elements.Keys.ToArray()) { ElementScrapeInfo scrapeInfo = m_Elements[key]; if (DateTime.Now.Subtract(scrapeInfo.LastInput) >= m_ScrapeTime) { m_Elements.Remove(key); completedScrapes.Add(scrapeInfo); } } } foreach (ElementScrapeInfo textBox in completedScrapes) { zOnElementScraped(new ElementScraperEventArgs() { Element = textBox.Element, ScrapedText = textBox.Input }); } completedScrapes.Clear(); Thread.Sleep(100); } }
public void ElementInput(HtmlElement element) { lock (m_Lock) { ElementScrapeInfo scrapeInfo; if (!m_Elements.TryGetValue(element, out scrapeInfo)) { scrapeInfo = new ElementScrapeInfo() { Element = element }; m_Elements.Add(element, scrapeInfo); } scrapeInfo.LastInput = DateTime.Now; scrapeInfo.Input = element.GetAttribute("value"); } }