public IFileSystemEntry Take() { lock (_lock) { PrioritizedFileSystemEntry prioritizedEntry = _queuedEntries.FirstOrDefault(); if (prioritizedEntry == null) { return(null); } _queuedEntries = _queuedEntries.Skip(1).ToList(); return(prioritizedEntry.Entry); } }
public void IncreasePriority(IFileSystemEntry entry, int priorityIncrement = 1) { lock (_lock) { PrioritizedFileSystemEntry prioritizedEntry = _queuedEntries.FirstOrDefault(x => x.Entry == entry); if (prioritizedEntry == null) { return; } prioritizedEntry.Priority += priorityIncrement; OrderQueue(); } }