public void Execute(T state) { lock (_syncRoot) { if (_isExecuting) { return; } _isExecuting = true; } IChainStep <T> head; if (_isFrozen && _head != null) { head = _head; } else { head = ComputeChainSequence(); if (_isFrozen) { _head = head; } } _head.Execute(state); lock (_syncRoot) _isExecuting = false; }
public void Execute(T state) { ExecuteOverride(state); if (!CancelExecution && _successor != null) { _successor.Execute(state); } }
public bool Execute(T msg) { if (Handle(msg)) { if (nextStep != null) { return(nextStep.Execute(msg)); } } return(false); }
public void Execute(T msg) { firstStep?.Execute(msg); }