private void OpenDir(string pathToDir, string pathToSave, OwnThreadPool ownThreadPool) { if (Directory.Exists(pathToDir)) { string[] directories = Directory.GetDirectories(pathToDir); if (directories.Length != 0) { foreach (var elem in directories) { OpenDir(elem, pathToSave, ownThreadPool); } } string[] files = Directory.GetFiles(pathToDir); if (files.Length != 0) { foreach (var elem in files) { do { Thread.Sleep(10); } while (!ownThreadPool.IsHavingFreeThread()); ownThreadPool.StartNewTask(FileAnalizator.StartAnaliz, (elem, PathToSaveDirectory + "result.txt")); } } } }
public void SearchDirectory() { OwnThreadPool ownThreadPool = new OwnThreadPool(FileAnalizator.StartAnaliz); ownThreadPool.NumberOfThread = 4; OpenDir(PathToRootDirectory, PathToSaveDirectory + "result.txt", ownThreadPool); }