Hello guys,
i know some might complain this should be in the C# section but i wrote it in C++ and also there seems to be more support going on in the C++ section.

I have written some code to monitor multiple files in different directories, essentially i created a seperate thread for each directory and file specified. My question is is this the best approach if i want to monitor multiple files in seperate directories?

here i create the threads for all the files and directories specified
Code:
        Thread^ t;
        for(int i = 1; i <= (length-1)/2; i++)
		{
            // Supply the state information required by the task.  
            // Create a thread to execute the task, and then
            // start the thread.					
            t = gcnew Thread(gcnew ThreadStart(gcnew ThreadWithState(args[j],args[j+1]), &ThreadWithState::ThreadProc));
            t->Start();
			j+=2;
		}
		Thread::Sleep(0);
        Console::WriteLine("Main thread does some work, then waits.");
        t->Join();
and here is the function invoked:
Code:
    void ThreadProc()
   {
       ... ...
      ........

        watcher->NotifyFilter = static_cast<NotifyFilters>(NotifyFilters::LastAccess |
			NotifyFilters::LastWrite | NotifyFilters::FileName );
		watcher->Filter = getFileName(); 
		/*map the events to the corresponding handler / call back function*/
        watcher->Changed += gcnew FileSystemEventHandler( ThreadWithState::fileChanged );
		watcher->Deleted += gcnew FileSystemEventHandler( ThreadWithState::fileDeleted );
		watcher->Created += gcnew FileSystemEventHandler( ThreadWithState::fileCreated );
	    watcher->Renamed += gcnew RenamedEventHandler( ThreadWithState::fileRenamed );	
        watcher->EnableRaisingEvents = true;

		while ( Console::Read() != 'q' );
		watcher->EnableRaisingEvents = false;

   }

essentially it is creating a Filesystemwatcher per file monitored in the directory.
If i wanted to monitor hundreds of files all in seperate directoreis will this be efficient enough?

br