public CreatedChangedDeletedFileSystemEventHandler(
ISyncEventQueue queue,
IMetaDataStorage storage,
IFileSystemInfoFactory fsFactory = null,
long threshold = 100)
{
if (queue == null) {
throw new ArgumentNullException("queue");
}
if (storage == null) {
throw new ArgumentNullException("storage");
}
this.queue = queue;
this.storage = storage;
this.threshold = threshold;
this.fsFactory = fsFactory ?? new FileSystemInfoFactory();
this.events = new List<Tuple<FileSystemEventArgs, Guid, DateTime, bool>>();
this.timer = new Timer();
this.timer.AutoReset = false;
this.timer.Elapsed += (sender, e) => this.PopEventsFromList();
}