public override void Fire(TTrigger trigger) { if (m_monitor.TryEnter()) { try { base.Fire(trigger); } finally { m_monitor.Exit(); } } else { if (IsEnabled) { ExecutionHelper.ThrowInTransition(); } } }
public override void MoveToState(TState state, StateTransitionOption option = StateTransitionOption.Default) { if (m_monitor.TryEnter()) { try { base.MoveToState(state, option); } finally { m_monitor.Exit(); } } else { if (IsEnabled) { ExecutionHelper.ThrowInTransition(); } } }
public override void Fire <TArgument>(ParameterizedTrigger <TTrigger, TArgument> parameterizedTrigger, TArgument argument) { if (m_monitor.TryEnter()) { try { base.Fire(parameterizedTrigger, argument); } finally { m_monitor.Exit(); } } else { if (IsEnabled) { ExecutionHelper.ThrowInTransition(); } } }