を作ろうとしていた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