class ActionQueue
{
private readonly Queue<Action> _queue = new Queue<Action>();
public void Add(Action action) { _queue.Enqueue(action); }
public void AddRange(IEnumerable<Action> actions) { actions.ToList().ForEach(Add);}
public void RunAll()
{
while (_queue.Count > 0)
{
var current = _queue.Dequeue();
current();
}
}
}
class Program
{
static void Main()
{
var actionQueue = new ActionQueue();
actionQueue.Add(() =>
{
Console.WriteLine(1);
actionQueue.AddRange(Enumerable
.Range(2, 8)
.Select(x => new Action(() => Console.WriteLine(x))));
});
actionQueue.Add(() => Console.WriteLine(10));
actionQueue.RunAll();
}
}
1 10
2 3 4 5 6 7 8 9
почему 10 не идет после 9? почему именно такой вывод?