/// <summary> /// Begin the main automation loop, accepting connections and executing commands /// </summary> public virtual void BeginAutomation() { try { _communicator = new TcpServerCommunicator(TCP_PORT); MobileDb.Instance.Register(DeviceInfo); while (true) { _communicator.Initialize(); MobileDb.Instance.SetAvailibility(DeviceInfo, false); // Returns when the connection has been closed HandleConnection(); MobileDb.Instance.SetAvailibility(DeviceInfo, true); } } catch (ThreadAbortException) { // App is shutting down, clean up _communicator.Close(); MobileDb.Instance.SetAvailibility(DeviceInfo, false); } }