/// <summary> /// /// </summary> private void CheckAndRun() { var canInvokeCount = SynchronousActionsCount - InvokingMethodsCount; if (canInvokeCount <= 0) { return; } var methods = QueueMethodInfos.Where(w => w.State == QueueState.WaitingInvoke).Take(SynchronousActionsCount).ToList(); methods.ForEach(f => f.State = QueueState.CanInvoke); }