private void GotoState(RunningState state) { if (_state == state) return; lock (this) { // maintainance the previous state; _previousState = _state; _state = state; } }