private void SwitchOnWatching(string[] validFileNames) { _triggerBasedUpdate = new Main.TriggerBasedUpdate(Current.TimerQueue) { MinimumWaitingTimeAfterUpdate = TimeSpanExtensions.FromSecondsAccurate(_importOptions.MinimumWaitingTimeAfterUpdateInSeconds), MaximumWaitingTimeAfterUpdate = TimeSpanExtensions.FromSecondsAccurate(Math.Max(_importOptions.MinimumWaitingTimeAfterUpdateInSeconds, _importOptions.MaximumWaitingTimeAfterUpdateInSeconds)), MinimumWaitingTimeAfterFirstTrigger = TimeSpanExtensions.FromSecondsAccurate(_importOptions.MinimumWaitingTimeAfterFirstTriggerInSeconds), MinimumWaitingTimeAfterLastTrigger = TimeSpanExtensions.FromSecondsAccurate(_importOptions.MinimumWaitingTimeAfterLastTriggerInSeconds), MaximumWaitingTimeAfterFirstTrigger = TimeSpanExtensions.FromSecondsAccurate(Math.Max(_importOptions.MaximumWaitingTimeAfterFirstTriggerInSeconds, _importOptions.MinimumWaitingTimeAfterFirstTriggerInSeconds)) }; _triggerBasedUpdate.UpdateAction += EhUpdateByTimerQueue; var directories = new HashSet <string>(validFileNames.Select(x => System.IO.Path.GetDirectoryName(x))); var watchers = new List <System.IO.FileSystemWatcher>(); foreach (var directory in directories) { try { var watcher = new System.IO.FileSystemWatcher(directory) { NotifyFilter = System.IO.NotifyFilters.LastWrite | System.IO.NotifyFilters.Size }; watcher.Changed += EhTriggerByFileSystemWatcher; watcher.IncludeSubdirectories = false; watcher.EnableRaisingEvents = true; watchers.Add(watcher); } catch (Exception) { } } _fileSystemWatchers = watchers.ToArray(); }
private void SwitchOnWatching() { _triggerBasedUpdate = new Main.TriggerBasedUpdate(Current.TimerQueue) { MinimumWaitingTimeAfterUpdate = TimeSpanExtensions.FromSecondsAccurate(_importOptions.MinimumWaitingTimeAfterUpdateInSeconds), MaximumWaitingTimeAfterUpdate = TimeSpanExtensions.FromSecondsAccurate(Math.Max(_importOptions.MinimumWaitingTimeAfterUpdateInSeconds, _importOptions.MaximumWaitingTimeAfterUpdateInSeconds)) }; _triggerBasedUpdate.UpdateAction += EhUpdateByTimerQueue; }
private void SwitchOffWatching() { IDisposable disp; disp = _triggerBasedUpdate; _triggerBasedUpdate = null; if (null != disp) { disp.Dispose(); } }
private void SwitchOffWatching() { IDisposable disp = null; var watchers = _fileSystemWatchers; _fileSystemWatchers = new System.IO.FileSystemWatcher[0]; for (int i = 0; i < watchers.Length; ++i) { disp = watchers[i]; if (null != disp) { disp.Dispose(); } } disp = _triggerBasedUpdate; _triggerBasedUpdate = null; if (null != disp) { disp.Dispose(); } }
private void SwitchOffWatching() { IDisposable disp = null; var watchers = _fileSystemWatchers; _fileSystemWatchers = new System.IO.FileSystemWatcher[0]; for (int i = 0; i < watchers.Length; ++i) { disp = watchers[i]; if (null != disp) disp.Dispose(); } disp = _triggerBasedUpdate; _triggerBasedUpdate = null; if (null != disp) disp.Dispose(); }
private void SwitchOnWatching(string[] validFileNames) { _triggerBasedUpdate = new Main.TriggerBasedUpdate(Current.TimerQueue); _triggerBasedUpdate.MinimumWaitingTimeAfterUpdate = TimeSpanExtensions.FromSecondsAccurate(_importOptions.MinimumWaitingTimeAfterUpdateInSeconds); _triggerBasedUpdate.MaximumWaitingTimeAfterUpdate = TimeSpanExtensions.FromSecondsAccurate(Math.Max(_importOptions.MinimumWaitingTimeAfterUpdateInSeconds, _importOptions.MaximumWaitingTimeAfterUpdateInSeconds)); _triggerBasedUpdate.MinimumWaitingTimeAfterFirstTrigger = TimeSpanExtensions.FromSecondsAccurate(_importOptions.MinimumWaitingTimeAfterFirstTriggerInSeconds); _triggerBasedUpdate.MinimumWaitingTimeAfterLastTrigger = TimeSpanExtensions.FromSecondsAccurate(_importOptions.MinimumWaitingTimeAfterLastTriggerInSeconds); _triggerBasedUpdate.MaximumWaitingTimeAfterFirstTrigger = TimeSpanExtensions.FromSecondsAccurate(Math.Max(_importOptions.MaximumWaitingTimeAfterFirstTriggerInSeconds, _importOptions.MinimumWaitingTimeAfterFirstTriggerInSeconds)); _triggerBasedUpdate.UpdateAction += EhUpdateByTimerQueue; var directories = new HashSet<string>(validFileNames.Select(x => System.IO.Path.GetDirectoryName(x))); var watchers = new List<System.IO.FileSystemWatcher>(); foreach (var directory in directories) { try { var watcher = new System.IO.FileSystemWatcher(directory); watcher.NotifyFilter = System.IO.NotifyFilters.LastWrite | System.IO.NotifyFilters.Size; watcher.Changed += EhTriggerByFileSystemWatcher; watcher.IncludeSubdirectories = false; watcher.EnableRaisingEvents = true; watchers.Add(watcher); } catch (Exception) { } } _fileSystemWatchers = watchers.ToArray(); }
private void SwitchOffWatching() { IDisposable disp; disp = _triggerBasedUpdate; _triggerBasedUpdate = null; if (null != disp) disp.Dispose(); }
private void SwitchOnWatching() { _triggerBasedUpdate = new Main.TriggerBasedUpdate(Current.TimerQueue); _triggerBasedUpdate.MinimumWaitingTimeAfterUpdate = TimeSpanExtensions.FromSecondsAccurate(_importOptions.MinimumWaitingTimeAfterUpdateInSeconds); _triggerBasedUpdate.MaximumWaitingTimeAfterUpdate = TimeSpanExtensions.FromSecondsAccurate(Math.Max(_importOptions.MinimumWaitingTimeAfterUpdateInSeconds, _importOptions.MaximumWaitingTimeAfterUpdateInSeconds)); _triggerBasedUpdate.UpdateAction += EhUpdateByTimerQueue; }