protected virtual void TriggerGet(Event @event = null) { while (GetQueue.Count > 0) { var get = GetQueue.Peek(); DoGet(get); if (get.IsTriggered) { GetQueue.Dequeue(); TriggerWhenAtMost(); TriggerWhenChange(); } else { break; } } Fillrate?.UpdateTo(Level / Capacity); GetQueueLength?.UpdateTo(GetQueue.Count); }
protected virtual void TriggerPut(Event @event = null) { while (PutQueue.Count > 0) { var put = PutQueue.Peek(); DoPut(put); if (put.IsTriggered) { PutQueue.Dequeue(); TriggerWhenAtLeast(); TriggerWhenChange(); } else { break; } } Fillrate?.UpdateTo(Level / Capacity); PutQueueLength?.UpdateTo(PutQueue.Count); }