Есть два списка
var proxy = new List<string>(); // 4 прокси
var urls = new List<string>(); // 100 урлов
Я использую
Parallel.For
для того чтобы реализовать многопоток. Теперь стоит вопрос в том чтобы каждый прокси делал только 25 запросов (25*4=100). Как я вижу самый лучший вариант поделить список на
urls.Count/proxy.Count
. Однако может быть такое что если коллекция будет больше, то получается что один и тот же поток с одной прокси может несколько раз взять данные из коллекции. Как быть?
Parallel.ForEach(Partitioner.Create(0, urls.Count, urls.Count/proxy.Count),new ParallelOptions{MaxDegreeOfParallelism = 10},range =>
{
for (int i = range.Item1; i < range.Item2; i++)
{
....
}
});