Je suis en désaccord avec certaines déclarations ici les gars. Tout d'abord, je ne vois aucune différence entre ThreadPool et Tasks dans la coordination ou le contrôle. Surtout lorsque les tâches s'exécutent sur ThreadPool et que vous avez un contrôle facile sur les tâches, les exceptions sont bien propagées à l'appelant pendant l'attente ou l'attente des tâches. Lorsque toutes les tâches sont
Deuxièmement, les E/S ne doivent pas être le seul goulot d'étranglement ici, en fonction des données et du niveau de compression, le ZIPping prendra probablement plus de temps que de lire le fichier sur le disque.
On peut penser à de nombreuses façons, mais je ferais mieux de faire quelque chose comme le nombre de cœurs de processeur ou un peu moins.
Chargement des chemins de fichiers vers ConcurrentQueue, puis autorisation d'exécution des tâches pour déquiler les chemins de fichiers, charger les fichiers, les compresser et les enregistrer. De là, vous pouvez modifier le nombre de cœurs et jouer avec l'équilibrage de charge.
Je ne sais pas si le partitionnement prend en charge les ZIP de fichiers lors de la compression, mais dans certains cas avancés/complexe il pourrait être une bonne idée, surtout sur de gros fichiers ...
WOW, il est de 6 ans question, Bummer! Je n'ai pas remarqué ... :)
TRÈS INEFFICACE! ;) – ipavlu