Queues

A queue represents a first-in, first-out (FIFO) collection. The classic analogy is to a line (or queue if you are British) at a ticket window. The first person in line ought to be the first person to come off the line to buy a ticket.

A queue is a good collection to use when you are managing a limited resource. For example, you might want to send messages to a resource that can only handle one message at a time. You would then create a message queue so that you can say to your clients: "Your message is important to us. Messages are handled in the order in which they are received."

The Queue class has a number of member methods and properties, as shown in Table 17-3.

Table 17-3. Queue methods and properties

Method or property

Purpose

Count

Public property that gets the number of elements in the Queue

Clear

Removes all objects from the Queue

Contains

Determines if an element is in the Queue

CopyTo

Copies the Queue elements to an existing one-dimensional array

Dequeue

Removes and returns the object at the beginning of the Queue

Enqueue

Adds an object to the end of the Queue

GetEnumerator

Returns an enumerator for the Queue

Peek

Returns the object at the beginning of the Queue without removing it

ToArray

Copies the elements to a new array

Add elements to your queue with the Enqueue command and take them off the queue with Dequeue. You can also see what is next in the queue (without removing it) using Peek. Example 17-6 illustrates.

Get Programming Visual Basic 2005 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.