private static Task Enqueue(QueueActionBase action)
        {
            if (action == null)
            {
                return(Task.CompletedTask);
            }

            lock (Lock)
            {
                return(_pending = Ready ? action.Execute() : _pending.ContinueWith(_ => action.Execute()));
            }
        }
 public static void RemoveAction(QueueActionBase action)
 {
     QueuedActions.RemoveAll(a => a.ActionId == action.ActionId);
 }
 public static void QueueAction(QueueActionBase action)
 {
     QueuedActions.Add(action);
 }