Esempio n. 1
0
        private void OnFileWatcherError(object sender, ErrorEventArgs e)
        {
            mutex.WaitOne();
            Exception ex = e.GetException();
            WatcherFailedEventArgs failedArg = new WatcherFailedEventArgs();

            WatchingDirectoryRemoved?.Invoke(this, failedArg);
            mutex.Set();
            if (failedArg.Action == WatcherFailedAction.Dispose)
            {
                Dispose();
            }
            else
            {
                if (fileWatcher != null)
                {
                    fileWatcher.Dispose();
                }
                if (directoryWatcher != null)
                {
                    directoryWatcher.Dispose();
                }
                WatchingDirectory = failedArg.DirectoryIfResume;
                InitWatcher();
            }
        }
Esempio n. 2
0
        private void OnWatcherFailed(object sender, WatcherFailedEventArgs e)
        {
            Watcher watcher = sender as Watcher;

            if (watcher == null)
            {
                return;
            }

            e.Action             = WatcherFailedAction.Dispose;
            watcher.ItemAdded   -= OnWatcherItemAdded;
            watcher.ItemRemoved -= OnWatcherItemRemoved;
            watcher.WatchingDirectoryRemoved -= OnWatcherFailed;
            watchers.Remove(watcher);
        }