Amib.Threading.Internal.WorkItem.IsValidStatesTransition C# (CSharp) Метод

IsValidStatesTransition() приватный статический Метод

private static IsValidStatesTransition ( WorkItemState currentState, WorkItemState nextState ) : bool
currentState WorkItemState
nextState WorkItemState
Результат bool
        private static bool IsValidStatesTransition(WorkItemState currentState, WorkItemState nextState)
        {
            bool valid = false;

            switch (currentState)
            {
                case WorkItemState.InQueue:
                    valid = (WorkItemState.InProgress == nextState) || (WorkItemState.Canceled == nextState);
                    break;
                case WorkItemState.InProgress:
                    valid = (WorkItemState.Completed == nextState) || (WorkItemState.Canceled == nextState);
                    break;
                case WorkItemState.Completed:
                case WorkItemState.Canceled:
                    // Cannot be changed
                    break;
                default:
                    // Unknown state
                    Debug.Assert(false);
                    break;
            }

            return valid;
        }