private void PrimeThreadArea() { while (true) { Thread.Sleep(1000); try { if (ServerRealization == null) { continue; } if ((ServerRealization.ServerStatus != ServerConnectStatus.Connect) && _serverStatusNead == ServerConnectStatus.Connect && _lastStartServerTime.AddSeconds(60) < DateTime.Now) { SendLogMessage(OsLocalization.Market.Message8, LogMessageType.System); ServerRealization.Dispose(); _candleManager = null; ServerRealization.Connect(); _lastStartServerTime = DateTime.Now; continue; } if (ServerRealization.ServerStatus == ServerConnectStatus.Connect && _serverStatusNead == ServerConnectStatus.Disconnect) { SendLogMessage(OsLocalization.Market.Message9, LogMessageType.System); ServerRealization.Dispose(); _candleManager = null; continue; } if (ServerRealization.ServerStatus != ServerConnectStatus.Connect) { continue; } if (_candleManager == null) { SendLogMessage(OsLocalization.Market.Message10, LogMessageType.System); StartCandleManager(); continue; } if (_portfolios == null || _portfolios.Count == 0) { ServerRealization.GetPortfolios(); } if (_securities == null || Securities.Count == 0) { ServerRealization.GetSecurities(); } } catch (Exception error) { SendLogMessage(OsLocalization.Market.Message11, LogMessageType.Error); SendLogMessage(error.ToString(), LogMessageType.Error); ServerStatus = ServerConnectStatus.Disconnect; ServerRealization.Dispose(); _candleManager = null; Thread.Sleep(5000); // переподключаемся _threadPrime = new Thread(PrimeThreadArea); _threadPrime.CurrentCulture = new CultureInfo("ru-RU"); _threadPrime.IsBackground = true; _threadPrime.Start(); if (NeadToReconnectEvent != null) { NeadToReconnectEvent(); } return; } } }
private void PrimeThreadArea() { while (true) { Thread.Sleep(1000); try { if (ServerRealization == null) { continue; } if ((ServerRealization.ServerStatus != ServerConnectStatus.Connect) && _serverStatusNead == ServerConnectStatus.Connect && _lastStartServerTime.AddSeconds(60) < DateTime.Now) { SendLogMessage("Запущена процедура активации подключения", LogMessageType.System); ServerRealization.Dispose(); _candleManager = null; ServerRealization.Connect(); _lastStartServerTime = DateTime.Now; continue; } if (ServerRealization.ServerStatus == ServerConnectStatus.Connect && _serverStatusNead == ServerConnectStatus.Disconnect) { SendLogMessage("Запущена процедура отключения подключения", LogMessageType.System); ServerRealization.Dispose(); _candleManager = null; continue; } if (ServerRealization.ServerStatus != ServerConnectStatus.Connect) { continue; } if (_candleManager == null) { SendLogMessage("Создаём менеджер свечей", LogMessageType.System); StartCandleManager(); continue; } if (_portfolios == null || _portfolios.Count == 0) { ServerRealization.GetPortfolios(); } if (_securities == null || Securities.Count == 0) { ServerRealization.GetSecurities(); } } catch (Exception error) { SendLogMessage("КРИТИЧЕСКАЯ ОШИБКА. Реконнект", LogMessageType.Error); SendLogMessage(error.ToString(), LogMessageType.Error); ServerStatus = ServerConnectStatus.Disconnect; ServerRealization.Dispose(); _candleManager = null; Thread.Sleep(5000); // переподключаемся _threadPrime = new Thread(PrimeThreadArea); _threadPrime.CurrentCulture = new CultureInfo("ru-RU"); _threadPrime.IsBackground = true; _threadPrime.Start(); if (NeadToReconnectEvent != null) { NeadToReconnectEvent(); } return; } } }