//запускаем инкременый поиск в папках public void gogle() { string[] PatchDir = Directory.GetDirectories(StartPatch); try { foreach(string MyPatch in PatchDir) { //создаем задачу Potok ForStartTask; //создаем новый обьект класса Sercher ForStartTask.Sercher = new Searchkliko() { //передаем в него путь где нужно искать Kliko StartPatch = MyPatch }; //задаем функцию которую будем выполнять в отдельном потоке ForStartTask.PotockSearch = new Thread(ForStartTask.Sercher.GetSearch); //добавляем данный поток в список для поиска TaskList.Add(ForStartTask); //запускаем поиск ForStartTask.PotockSearch.Start(); } } catch { } //Итак ждем завершения поиска всех данных while (Finished()) { //чтобы процесс не вешал систему проверяем действие каждые 50 милисекунд Thread.Sleep(50); } //обьявляем класс вохранения данных в таблицу Digest MyDigest = new Digest(); // Console.WriteLine(" поиск окончен сохраняем данные "); //когда все потоки закончат поиск будем соберать данные в таблицу foreach (Potok SelectTask in TaskList) { //перебираем данные из найденного списка foreach (string FindPatch in SelectTask.Sercher.SerchResult) { // Console.WriteLine("получение данных о "+FindPatch); //добавляем данные в таблицу MyDigest.Digestpatch = FindPatch; //добавляем данные в таблицу MyDigest.ADDRowDigest(); // Console.WriteLine("Время обновления папки " + MyDigest.DateUpdate+"\t Путь к диретории " + MyDigest.Digestpatch+"\t Имя Kliko" + MyDigest.DigestName ); } } }