Tengo un bucle asíncrono Parallel.ForEach() con el que descargo algunas páginas web. Mi ancho de banda es limitado, así que puedo descargar solo x páginas por vez, pero Parallel.ForEach ejecuta toda la lista de páginas web deseadas.¿Cómo puedo limitar Parallel.ForEach?
¿Hay alguna manera de limitar el número de subprocesos o cualquier otro limitador mientras se ejecuta Parallel.ForEach?
código de demostración:
Parallel.ForEach(listOfWebpages, webpage => {
Download(webpage);
});
La verdadera tarea no tiene nada que ver con las páginas web, por lo que se arrastra web soluciones creativas no ayudará.
Veo que está ejecutando un Parallel.ForEach() en una lista - Yo también gusta vivir peligrosamente. – jKlaus
@jKlaus Si la lista no se modifica, p. es solo un conjunto de URL, realmente no puedo ver el problema? – Shiv
@Shiv, dado el tiempo suficiente ... Contar el número de ejecuciones y compararlo con el recuento de la lista. – jKlaus