Have you thought of using a Queue<>?