public void Start() { _tracking = new TrackedSet(findFiles()); _timer.Change(0, PollingIntervalInMilliseconds); }
private void processChanges() { var files = findFiles(); if (_tracking == null) { _tracking = new TrackedSet(files); return; } var changes = _tracking.DetectChanges(files); if (!changes.HasChanges()) { return; } if (ChangeBuffer > 0) { var checkpoint = new TrackedSet(files); var count = 0; while (count < 3) { files = findFiles(); if (checkpoint.DetectChanges(files).HasChanges()) { checkpoint = new TrackedSet(files); count++; } else { break; } } } if (!_latched) { try { _tracking = new TrackedSet(files); _handler.Handle(changes); } catch (Exception ex) { Console.WriteLine(ex); } } }