FileSystemWatcher и сеть отключены? - PullRequest
6 голосов
/ 11 ноября 2008

Как я могу заставить его работать в сети? Это работает, затем перестает работать без причины (возможно, потому что сеть не идеальна).

1 Ответ

7 голосов
/ 11 ноября 2008

Вам необходимо восстановить соединение с FileSystemWatcher.

Сделайте вашу переменную типа FileSystemWatcher глобальной для вашего класса, добавьте событие WatcherError.

Внутри метода добавьте что-то вроде этого:

  private static void WatcherError(object source, ErrorEventArgs e)
  {
     watcher = new FileSystemWatcher();//You might want to do a method and to setup all config...
     while (!watcher.EnableRaisingEvents)
     {
        try
        {
           watcher = new FileSystemWatcher();//You might want to do a method and to setup all config...
        }
        catch
        {
           System.Threading.Thread.Sleep(30000); //Wait for retry 30 sec.
        }
     }
  }

Вы не хотите использовать watcher = new ... вы бы предпочли иметь метод, который будет добавлять все события и устанавливать путь, но приведенный выше код дает вам хорошее представление о том, что делать.

...