/// <summary> /// Constructor. /// </summary> public MBTradingConnectionManager(MBTradingAdapter adapter) { ChangeOperationalState(OperationalStateEnum.Constructed); _adapter = adapter; _messageLoopOperator = new BackgroundMessageLoopOperator(false); _quotes = new MBTradingQuote(_messageLoopOperator); _history = new MBTradingHistory(_messageLoopOperator); _orders = new MBTradingOrders(_messageLoopOperator); }
/// <summary> /// /// </summary> public void Dispose() { try { lock (this) { if (_quotes != null) { _quotes.Dispose(); _quotes = null; } if (_history != null) { _history.Dispose(); _history = null; } if (_orders != null) { _orders.UnInitialize(); _orders.Dispose(); _orders = null; } if (_adapter != null) { _adapter = null; } if (_communicationManager != null) { _communicationManager.OnLogonSucceed -= new IMbtComMgrEvents_OnLogonSucceedEventHandler(_communicationManager_OnLogonSucceed); _communicationManager = null; } if (_messageLoopOperator != null) { _messageLoopOperator.Stop(); _messageLoopOperator.Dispose(); _messageLoopOperator = null; } ChangeOperationalState(OperationalStateEnum.Disposed); } } catch (Exception ex) { SystemMonitor.OperationError(ex.Message); } //GC.Collect(); }