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); }