示例#1
0
 public IFileSystemEntry Take()
 {
     lock (_lock)
     {
         PrioritizedFileSystemEntry prioritizedEntry = _queuedEntries.FirstOrDefault();
         if (prioritizedEntry == null)
         {
             return(null);
         }
         _queuedEntries = _queuedEntries.Skip(1).ToList();
         return(prioritizedEntry.Entry);
     }
 }
示例#2
0
 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();
     }
 }