title: C# : FileSystemWatcher - multiple watching folders issue
body: <p>Im trying write program in c# which is watching multiple folders. If in any of watched folders are added file, program should create copy in defined paths. 
  My problem is when i create file, program create copies in wrong folder </p>
  
  <p>e.g. if i add file into <pre> C:\folder1\stuff\ </pre> it should create copy in <pre> D:\stuff1\copied1...3\</pre>
  but instead it created copies in <pre> D:\stuff2\copied1...3\</pre></p>
  
  <p>There is code :</p>
  
  <pre>
  namespace Watcher
  {
      public class Watcher
      {
  
          struct Paths
          {
              public string sourcePath;
              public List&ltstring&gt destinations;
              public FileSystemWatcher Watcher;
          }
  
          List&ltPaths&gt paths = new List&ltPaths&gt();
  
          public Watcher()
          {
              createWatchTower();
          }
  
          public void watch()
          {
              foreach (Paths p in paths)
              {
                  p.Watcher.Created += (sender, e) => onCreate(sender, e, p.destinations);
              }
          }
  
          void createWatchTower()
          {
              Paths p1;
              p1.destinations = new List&ltstring&gt();
  
              p1.sourcePath = @"C:\folder1\stuff\";
  
              p1.Watcher = new FileSystemWatcher();
              p1.Watcher.Path = p1.sourcePath;
              p1.Watcher.EnableRaisingEvents = true;
  
              p1.destinations.Add(@"D:\stuff1\copied1\");
              p1.destinations.Add(@"D:\stuff1\copied2\");
              p1.destinations.Add(@"D:\stuff1\copied3\");
              paths.Add(p1);
  
  
              Paths p2;
              p2.destinations = new List&ltstring&gt();
              p2.sourcePath = @"C:\folder2\stuff2";
  
              p2.Watcher = new FileSystemWatcher();
              p2.Watcher.Path = p2.sourcePath;
              p2.Watcher.EnableRaisingEvents = true;
  
              p2.destinations.Add(@"D:\stuff2\copied1\");
              p2.destinations.Add(@"D:\stuff2\copied2\");
              p2.destinations.Add(@"D:\stuff2\copied3\");
  
              paths.Add(p2);
  
          }
  
          private void onCreate(object o, FileSystemEventArgs e, List&ltstring&gt dest)
          {
  
              foreach (string s in dest)
              {
                  try
                  {
                      System.IO.File.Copy(e.FullPath, s + e.Name, true);
                  }
                  catch (Exception ex)
                  {
                      Console.WriteLine(ex);
                  }
              }
          }
      }
  }
  </pre>
  
  <p>Could anyone help me ? I think its because event in foreach, but i cant find sollution for this. 
  Thanks much 
  post </p>