Tengo que estar en desacuerdo con ciertas declaraciones aquí chicos.
Antes que nada, no veo ninguna diferencia entre ThreadPool y Tareas en coordinación o control. Especialmente cuando las tareas se ejecutan en ThreadPool y tiene fácil control sobre las tareas, las excepciones se propagan agradablemente a la persona que llama mientras espera o espera en las tareas. Cuando todas (tareas) etc.
En segundo lugar, la E/S no tiene que ser el único cuello de botella aquí, dependiendo de los datos y del nivel de compresión, el ZIPping tomará probablemente más tiempo que leer el archivo del disco.
Se puede pensar de muchas maneras, pero lo mejor sería algo como la cantidad de núcleos de CPU o un poco menos.
Cargando rutas de archivos a ConcurrentQueue y luego permitiendo que las tareas en ejecución dequenue filepaths, carguen archivos, los copien, los guarde.
Desde allí puede modificar el número de núcleos y jugar con equilibrio de carga.
No sé si postal admite la partición de archivos durante la compresión, pero en algunos casos avanzados/compleja que podría ser una buena idea, especialmente en archivos grandes ...
WOW, que es de 6 años de edad pregunta, Bummer! No me he dado cuenta ... :)
MUY INEFICIENTE! ;) – ipavlu