WebClient для краулинга страничек с сайта. С помощью такого кода я создаю кучу инстансов WebClient и асинхронно качаю странички.
var tasks = uriList
.Select(url => Task.Run(() =>
new WebClient().DownloadStringTaskAsync(url))).ToList();
await Task.WhenAll(tasks);
Вопрос следующий. Как сделать небольшие паузы между запусками тредов с запросами к серверу? Я не хочу, чтобы под натиском моего паука сайт начал тормозить или не дай бог упал (такое уже было пару раз во время моих опытов, но может быть это было совпадение).
Может очередь какую намутить и делать паузы перед запусками, но не пропадёт ли тогда смысл асинхронщины при таком решении?
Обсуждают сегодня