Multi threaded " traitement du fichier avec .NET

Il y a un dossier qui contient 1000s de petits fichiers de texte. Mon but est d'analyser et de traiter tous d'entre eux, tandis que plus les fichiers sont placés dans le dossier. Mon intention est de multithread cette opération que le thread unique prototype, qui a duré six minutes pour le processus de 1000 fichiers.

J'aime avoir du lecteur et de l'écrivain, fil(s) à la suivante. Alors que le thread de lecture(s) de la lecture des fichiers, j'aimerais avoir thread d'écriture(s) à traiter. Une fois que le lecteur est de commencer la lecture d'un fichier, je tiens à le marquer comme " en cours de traitement, comme en le renommant. Une fois qu'il est lu, le renommer en "terminé".

Comment aborder une telle application multithread?

Est-il préférable d'utiliser un distributed hash table ou une file d'attente?

Lequel la structure de données dois-je utiliser pour éviter les verrous?

Est-il une meilleure approche de ce dispositif?

Qui .net version est disponible pour l'utilisation? .Net 4 offre beaucoup aider avec cela, mais vous ne savez pas si c'est une option.
L'un des principaux facteurs limitant c'est I/O contention, peu importe comment vous essayez de paralléliser le travail, tout doit passer par le même I/O.
ok, qui s bien, je tiens à utiliser pleinement les IO
.net 3.5. J'en doute .net 4 est une option pour moi.
Craver je voudrais vraiment creuser voir un .Net 4 suggestion en plus de la 3.5. Mais seulement si il ne serait pas vous mettre à tous, et que si d'autres personnes sont intéressées aussi bien (ils ont peut-mod de ce commentaire).

OriginalL'auteur DarthVader | 2010-05-11