public void run() { while (!this.Stop) { IProcessingState state; var timeouted =_communication.GetGUIMessage(out state, 20); if (timeouted) { TimeoutState.Process(this, out _timeoutState); } else { state.Process(this, out _timeoutState); } } }