Advertisement
Guest User

Untitled

a guest
Jul 20th, 2015
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.25 KB | None | 0 0
  1. using System.Collections.Concurrent;
  2. using System.IO;
  3. using System.Threading.Tasks;
  4.  
  5. namespace MediaOpt
  6. {
  7.     internal class Program
  8.     {
  9.         private static readonly ConcurrentQueue<string> Queue = new ConcurrentQueue<string>();
  10.  
  11.         private static void Main(string[] args)
  12.         {
  13.             for (var i = 0; i < 25; i++)
  14.             {
  15.                 ProcessDir(@"D:\Music");
  16.             }
  17.  
  18.             for (var i = 0; i < 25; i++)
  19.             {
  20.                 ProcessDirM(@"D:\Music");
  21.             }
  22.         }
  23.  
  24.         private static void ProcessDir(string path)
  25.         {
  26.             var files = Directory.EnumerateFiles(path);
  27.             foreach (var file in files)
  28.             {
  29.                 Queue.Enqueue(file);
  30.             }
  31.             var dirs = Directory.EnumerateDirectories(path);
  32.             foreach (var dir in dirs)
  33.             {
  34.                 ProcessDir(dir);
  35.             }
  36.         }
  37.  
  38.         private static void ProcessDirM(string path)
  39.         {
  40.             var files = Directory.EnumerateFiles(path);
  41.             Parallel.ForEach(files, s => { Queue.Enqueue(s); });
  42.             var dirs = Directory.EnumerateDirectories(path);
  43.             Parallel.ForEach(dirs, ProcessDirM);
  44.         }
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement