예제 #1
0
    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));
    }
예제 #2
0
 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);
 }