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