Exemplo n.º 1
0
 public EventQueue GetEvent()
 {
     if (queue.Count > 0)
     {
         EventQueue eventQueue = null;
         while (queue.Count > 0)
         {
             eventQueue = Dequeue();
             EventQueue prev = eventQueue;
             eventQueue = eventQueue.GetEvent();
             if (eventQueue._eventSet != null)
             {
                 Enqueue(prev);
                 break;
             }
         }
         if (eventQueue == null || eventQueue._eventSet == null)
         {
             return(this);
         }
         return(eventQueue);
     }
     else
     {
         return(this);
     }
 }
Exemplo n.º 2
0
 private void ProcessEventStack(EventQueue rootQueue)
 {
     if (nextOperation == OperationType.Abort)
     {
         return;
     }
     while ((currentQueue = rootQueue.GetEvent()) != null)
     {
         var eventSet = currentQueue.GetEventSet();
         if (eventSet == null)
         {
             break;
         }
         ProcessEvent(eventSet);
     }
 }