public void PushBottom(Task t) { int oldBottom = bottom; int oldTop = top; int size = oldBottom - oldTop; if (size >= tasks.Capacity - 1) { tasks = tasks.Resize(oldBottom, oldTop); } tasks.Put(oldBottom, t); bottom = oldBottom + 1; }
public void PushBottom(Task t) { int oldBottom = bottom; //запоминаем нижний индекс int oldTop = top; //запоминаем верхний индекс int size = oldBottom - oldTop; //вычисляем разницу между верхним индексом и нижним if (size >= tasks.Capacity - 1) //если она больше, чем вмсетимость - 1 { tasks = tasks.Resize(oldBottom, oldTop); //меняем размер циклического массива } tasks.Put(oldBottom, t); //кладем задачу в конец очереди bottom = oldBottom + 1; //двигаем нижний индекс }