Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections.Concurrent;
- using System.IO;
- using System.Threading.Tasks;
- namespace MediaOpt
- {
- internal class Program
- {
- private static readonly ConcurrentQueue<string> Queue = new ConcurrentQueue<string>();
- private static void Main(string[] args)
- {
- for (var i = 0; i < 25; i++)
- {
- ProcessDir(@"D:\Music");
- }
- for (var i = 0; i < 25; i++)
- {
- ProcessDirM(@"D:\Music");
- }
- }
- private static void ProcessDir(string path)
- {
- var files = Directory.EnumerateFiles(path);
- foreach (var file in files)
- {
- Queue.Enqueue(file);
- }
- var dirs = Directory.EnumerateDirectories(path);
- foreach (var dir in dirs)
- {
- ProcessDir(dir);
- }
- }
- private static void ProcessDirM(string path)
- {
- var files = Directory.EnumerateFiles(path);
- Parallel.ForEach(files, s => { Queue.Enqueue(s); });
- var dirs = Directory.EnumerateDirectories(path);
- Parallel.ForEach(dirs, ProcessDirM);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement