Мне нужно сканировать родительские веб-страницы и их дочерние веб-страницы, и я следовал концепции производителя / потребителя из http://www.albahari.com/threading/part4.aspx#%5FWait%5Fand%5FPulse . Кроме того, я использовал 5 потоков, которые ставят и удаляют ссылки.
Какие-либо рекомендации о том, как мне завершить / присоединиться ко всем потокам, когда все они закончат обработку очереди, учитывая, что длина очереди неизвестна?
Ниже представлена идея того, как я ее закодировал.
static void Main(string[] args)
{
//enqueue parent links here
...
//then start crawling via threading
...
}
public void Crawl()
{
//dequeue
//get child links
//enqueue child links
}