¿Qué sucede si necesita ejecutar varias tareas de E/S asíncronas en paralelo pero necesita asegurarse de que no se ejecutan más de X procesos de E/S al mismo tiempo; y las tareas de procesamiento pre y post de E/S no deberían tener tal limitación.¿Cómo se ejecutan correctamente varias tareas asíncronas en paralelo?
Aquí hay un escenario: digamos que hay 1000 tareas; cada uno de ellos acepta una cadena de texto como parámetro de entrada; transforma ese texto (procesamiento previo de E/S) y luego escribe ese texto transformado en un archivo. El objetivo es hacer que la lógica de preprocesamiento utilice el 100% de CPU/Núcleos y la parte de E/S de las tareas se ejecutan con un máximo de 10 grados de paralelismo (10 como máximo se abren simultáneamente para escribir archivos a la vez).
¿Puede proporcionar un código de muestra de cómo hacerlo con C#/.NET 4.5?
http://blogs.msdn.com/b/csharpfaq/archive/2012/01/23/using-async-for-file-access-alan-berman.aspx
Rx 2.0 podría ser una buena opción para esto (estrangulamiento de la segunda etapa a 10 a la vez), pero no estoy lo suficientemente familiarizado con eso para decirlo con seguridad. : -/ –