public void ExecuteNextShutdownItem() { if (ItemQueue.Any()) { _currentItem = ItemQueue.Dequeue(); Shows.Action action = _currentItem.GetAction(); action.ActionComplete += OnShutdownActionComplete; ExecuteAction(action); // Otherwise, the show is done :( } else { State = StateType.Waiting; ScheduleExecutor.AddSchedulerLogEntry(Show.Name, "Show complete"); Show.ReleaseAllActions(); } }
public void ExecuteNextStartupItem() { if (State == StateType.Running) { // Do we have startup items to run? if (ItemQueue.Any()) { _currentItem = ItemQueue.Dequeue(); Shows.Action action = _currentItem.GetAction(); action.ActionComplete += OnStartupActionComplete; ExecuteAction(action); } // Otherwise, move on to the sequential and background items else { BeginSequential(); BeginBackground(); } } }
public void ExecuteNextSequentialItem() { LogScheduleInfoEntry("ExecuteNextSequentialItem"); if (State == StateType.Running) { if (ItemQueue.Any()) { LogScheduleInfoEntry("ExecuteNextSequentialItem: Dequeue next item"); _currentItem = ItemQueue.Dequeue(); Shows.Action action = _currentItem.GetAction(); action.ActionComplete += OnSequentialActionComplete; ExecuteAction(action); } else { LogScheduleInfoEntry("ExecuteNextSequentialItem: Nothing left in the queue. Restarting the queue."); // Restart the queue BeginSequential(); } } }
public void ExecuteNextSequentialItem() { ScheduleExecutor.Logging.Info("ExecuteNextSequentialItem"); if (State == StateType.Running) { if (ItemQueue.Any()) { ScheduleExecutor.Logging.Info("ExecuteNextSequentialItem: Dequeue"); _currentItem = ItemQueue.Dequeue(); Shows.Action action = _currentItem.GetAction(); action.ActionComplete += OnSequentialActionComplete; ExecuteAction(action); } else { ScheduleExecutor.Logging.Info("ExecuteNextSequentialItem: BeginSequential"); // Restart the queue BeginSequential(); } } }
public BufferItem GetBuffer() { BufferItem item = null; while (item == null) { bool check = false; lock (__queuelock) { if (ItemQueue.Count > 0) { item = ItemQueue.Dequeue(); check = true; } } if (!check) { //Console.WriteLine("!Reader BufferWait"); System.Threading.Thread.Sleep(1); } } return(item); }