Pregunta

Tengo un número razonable de registros en una tabla de Azure que estoy tratando de hacer algo de cifrado de datos una sola vez en. Pensé que podría acelerar las cosas mediante el uso de un Parallel.ForEach. También porque hay más de 1K registros y no quieren perder el tiempo con la continuación fichas yo estoy usando un CloudTableQuery para conseguir mi empadronador.

Mi problema es que algunos de mis discos han sido cifrada doble y me di cuenta de que no estoy seguro de qué tan seguro de rosca el empadronador devuelto por CloudTableQuery.Execute() es. Tiene alguien más por ahí tenían ninguna experiencia con esta combinación?

¿Fue útil?

Solución 2

A pesar de mis mejores esfuerzos he sido incapaz de replicarse mi problema original. Por consiguiente, mi conclusión es que es perfectamente bien usar bucles Parallel.ForEach con CloudTableQuery.Execute().

Otros consejos

Yo estaría dispuesto a apostar que la respuesta a ejecutar el retorno de una aplicación IEnumerator flujos seguros es muy poco probable. Dicho esto, esto suena como otro caso para la patrón productor-consumidor .

En su situación específica que tendría el hilo original que llama Ejecutar leer los resultados de forma secuencial con agua y colocarlas en un BlockingCollection<T> . Antes de empezar a hacer eso, sin embargo, desea iniciar un Task independiente que controlará el consumo de dichos elementos mediante Parallel::ForEach. Ahora, es probable que también desee ver en el uso del método de la biblioteca GetConsumingPartitioner ParallelExtensions con el fin de ser más eficaz, pues la herramienta de particionado predeterminado creará más sobrecarga de lo que desea en este caso. Puede leer más sobre esto desde esta entrada del blog .

Una ventaja adicional de la utilización de más de un BlockingCollection<T> ConcurrentQueueu<T> prima es que ofrece la posibilidad de límites establecidos que puede ayudar a bloquear el productor de añadir más elementos a la colección que los consumidores pueden seguir el ritmo. Usted, por supuesto necesidad de hacer algunas pruebas de rendimiento para encontrar el punto óptimo para su aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top