0

を作ろうとしていたQueue<Action>。各アクションをキューから取り出して呼び出すと、 で停止し続けました4。コードを確認したところ、すべてが正しく処理されていました。ここで何が間違っていますか?

public class Program
{
    static void Main(string[] args)
    {
        SomeClass test = new SomeClass();
        test.EnqueuePrint("1");
        test.EnqueuePrint("2");
        test.EnqueuePrint("3");
        test.EnqueuePrint("4");
        test.EnqueuePrint("5");
        test.EnqueuePrint("6");
        test.EnqueuePrint("7");
        test.EnqueuePrint("8");
        Console.WriteLine("Process the queue!");
        test.ProcessQueue();
    }
}

public class SomeClass
{
    private Queue<Action> _actionQueue;

    public SomeClass()
    {
        _actionQueue = new Queue<Action>();
    }
    public void EnqueuePrint(string message)
    {
        _actionQueue.Enqueue(() => Print(message));
    }

    private void Print(string message)
    {
        Console.WriteLine(message);
    }

    public void ProcessQueue()
    {
        for (int i = 0; i < _actionQueue.Count; i++)
        {
            _actionQueue.Dequeue().Invoke();
        }
    }
}

出力

Process the queue!
1
2
3
4
4

1 に答える 1