예제 #1
0
 public void Start()
 {
     _tracking = new TrackedSet(findFiles());
     _timer.Change(0, PollingIntervalInMilliseconds);
 }
예제 #2
0
        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);
                }
            }
        }
예제 #3
0
 public void Start()
 {
     _tracking = new TrackedSet(findFiles());
     _timer.Change(0, PollingIntervalInMilliseconds);
 }