FileSystemWatcher работа с несколькими директориями в отдельных потоках - C#
Формулировка задачи:
Пишу программу, используя класс FileSystemWatcher. Необходимо организовать работу с несколькими директориями. На входе есть массив с этими самыми директориями. Суть проблемы в том, что все созданные экземпляры FileSystemWatcher ведут мониторинг за одной папкой, которая записана последней в текстовом файле с директориями. Подскажите, в чем здесь проблема?
Вот кусок кода:
string[] lines = System.IO.File.ReadAllLines(@"C:\Audit\input.txt"); // в этом файле хранятся необходимые директории byte count=0; Data data = new Data(); // класс для передачи данных в поток, содержит переменные типа int и string Thread[] threads = new Thread[10]; for (int i = 0; i < lines.Length; i++) { data.way = lines[i]; data.count = count; // заполняем класс data ( в поле string вписываем директорию, в поле count - номер) threads[count] = new Thread(create_new_watcher); // функция create_new_watcher описана ниже threads[count].Name = "Thread " + (count + 1); threads[count].Start(data); count++; } private static void create_new_watcher(object data) { Data obj = (Data)data; int i = obj.count; string way = obj.way; Console.WriteLine(obj.way); Console.WriteLine(obj.count); elements[i] = new FileSystemWatcher(way); elements[i].NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.Size; elements[i].Renamed += new RenamedEventHandler(OnRenamed); elements[i].Deleted += new FileSystemEventHandler(OnChanged); elements[i].Created += new FileSystemEventHandler(OnChanged); elements[i].Changed += new FileSystemEventHandler(OnChanged); elements[i].EnableRaisingEvents = true; while (true) ;
Решение задачи: «FileSystemWatcher работа с несколькими директориями в отдельных потоках»
textual
Листинг программы
for (int i = 0; i < lines.Length; i++) { Data data = new Data(); // класс для передачи данных в поток, содержит переменные типа int и string
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д