5
     public List<Transfer> Queue
     {
         get { return _queue; }
         set { _queue = value; }
     }
    TransferFromQueue()
    {
         // Do stuff
         // Remove transfered item from Queue
    }

My Queue is a variable to which items will be added and removed all the time.

I'm looking for a way to execute TransferFromQueue() whenever there are items in the list. Though it should never be running more than one istance of TransferFromQueue().

How can I loop this queue one by one when there are items in the Queue?

1 Answers1

10

Why don't you use a Queue<Transfer> instead? It seems to be exactly what you want.

private Queue<Transfer> _queue = new Queue<Transfer>();
public Queue<Transfer> Queue
{
    get { return _queue; }
    set { _queue = value; }
}

void TransferFromQueue()
{
    while(Queue.Count > 0)
    {
        Transfer current = Queue.Dequeue(); // removed
        // use Queue.Peek() if you want to look at it witout removing it
        // Do stuff
    }
}

Related:

Queue<T> vs List<T>

Community
  • 1
  • 1
Tim Schmelter
  • 450,073
  • 74
  • 686
  • 939