2012-11-28 3 views
0

Je code suivant:exécution parallèle C#

foreach (string file in Directory.EnumerateFiles(@"mynetwork\dirall", "*.*", SearchOption.AllDirectories)) 
{ 
    list.Add(file); 
} 

Répertoire a quelque 2 millions de fichiers. Je veux construire l'index à partir de ce que je va écrire dans le fichier à partir de l'objet de liste que je peuple.

Il faut près de 45 minutes pour effectuer. Puis-je diviser ce processus pour l'exécuter parallèlement?
Une idée? Threading ou quelque chose?

Répondre

0

Je l'ai eu en travaillant en utilisant le code suivant que j'ai reçu du Stackoverflow!

// Takes same patterns, and executes in parallel 
    public static IEnumerable<string> GetDirs(string path, string searchPattern, SearchOption searchOption = SearchOption.TopDirectoryOnly) 
    { 
     return Directory.EnumerateDirectories(path, searchPattern, searchOption); 
    } 

    // Takes same patterns, and executes in parallel 
    public static IEnumerable<string> GetFiles(string[] paths,string searchPattern, SearchOption searchOption = SearchOption.AllDirectories) 
    { 
     return paths.AsParallel().SelectMany(path => Directory.EnumerateFiles(path, searchPattern, searchOption)); 
    } 
Questions connexes