示例#1
0
 public override string ToString()
 {
     return
         (DescendingPriorities
          .Select(PriorityStatusToString)
          .Aggregate($"{nameof(PriorityQueueUC<TPrioritySelectorEnum, TItem>)}", (c, n) => c + "\r\n" + n)
         );
 }
 /// <summary>
 /// <para/> Concurrent non-blocking priority queue with optional priority based dequeue.
 /// <para/> Do not use <see cref="System.Enum.GetValues(System.Type)"/> to build <see cref="descendingPriorities"/>
 /// as C# specification does not ensure order of values as defined in your enum unless you explicitly
 /// assign value to each enum name and order by value!
 /// <para/> Flagged enums are not supported.
 /// </summary>
 public PriorityQueueNotifierUC(IEnumerable <TPrioritySelectorEnum> descendingPriorities)
     : base(descendingPriorities)
 {
     NotifyPriority = DescendingPriorities.ToDictionary(p => p, p => new Queue <TaskCompletionSource <object> >());
 }