private void StartFolderWatchers() { var projects = CommanderSettings.Projects; for (var j = 0; j < projects.Count; j++) { var folderSettings = CommanderSettings.Projects[j].Folders; for (var i = 0; i < folderSettings.Count; i++) { var folderSetting = folderSettings[i]; var enhancedFileSystemWatcher = _enhancedFileSystemWatcherFactory.CreateEnhancedFileSystemWatcher( folderSetting.GetFolderToWatchOrDefault(), folderSetting.Filter, folderSetting.PollTime, folderSetting.IncludeSubdirectories, folderSetting); _enhancedFileSystemWatchers.Add(enhancedFileSystemWatcher); } } _fileFinishedChangingEvent = new FileFinishedChangingEventHandler(OnFileFinishedChangingEvent); foreach (var enhancedFileSystemWatcher in _enhancedFileSystemWatchers) { enhancedFileSystemWatcher.FileFinishedChangingEvent += _fileFinishedChangingEvent; } foreach (var enhancedFileSystemWatcher in _enhancedFileSystemWatchers) { enhancedFileSystemWatcher.Start(); } }
private void Dispose(bool disposeManagedResources) { if (!disposeManagedResources) return; var disposedAlready = Interlocked.Exchange(ref _alreadyDisposed, 1); if (disposedAlready != 0) { return; } // Dispose managed resources. foreach (var enhancedFileSystemWatcher in _enhancedFileSystemWatchers) { enhancedFileSystemWatcher.FileFinishedChangingEvent -= _fileFinishedChangingEvent; } foreach (var enhancedFileSystemWatcher in _enhancedFileSystemWatchers) { enhancedFileSystemWatcher.Dispose(); } _fileFinishedChangingEvent = null; // Dispose unmanaged resources. // If it is available, make the call to the // base class's Dispose(Boolean) method }
private void Dispose(bool disposeManagedResources) { if (!disposeManagedResources) return; var disposedAlready = Interlocked.Exchange(ref _alreadyDisposed, 1); if (disposedAlready != 0) { return; } // Dispose managed resources. _fileSystemWatcher.Changed -= _fileSystemWatcherChangedEvent; _fileSystemWatcher.Created -= _fileSystemWatcherCreatedEvent; _fileSystemWatcher.Deleted -= _fileSystemWatcherDeletedEvent; _fileSystemWatcher.Renamed -= _fileSystemWatcherRenamedEvent; _fileSystemWatcher.Dispose(); _fileChangedEvent = null; _fileCreatedEvent = null; _fileDeletedEvent = null; _fileRenamedEvent = null; _fileFinishedChangingEvent = null; // Dispose unmanaged resources. // If it is available, make the call to the // base class's Dispose(Boolean) method }