public void Push(Action action, PopPriority priority, PopCondition condition) { QueueUnit queueUnit = new QueueUnit { action = action, priority = (uint)priority, condition = condition }; this.m_actionlist.Add(queueUnit); this.m_actionlist = Enumerable.ToList <QueueUnit>(Enumerable.OrderByDescending <QueueUnit, uint>(this.m_actionlist, (QueueUnit t) => t.priority)); }
public bool CheckQueue(PopCondition condition) { if (!this.Islocked) { for (int i = 0; i < this.m_actionlist.get_Count(); i++) { if (this.m_actionlist.get_Item(i).condition == condition) { QueueUnit queueUnit = this.m_actionlist.get_Item(i); this.m_actionlist.RemoveAt(i); queueUnit.JustCall(); this.Islocked = true; return(true); } } } return(false); }