private void PrimeThreadArea() { while (true) { Thread.Sleep(1000); lock (_serverLocker) { try { if (_krakenClient == null) { SendLogMessage("Создаём коннектор", LogMessageType.System); CreateNewServer(); continue; } ServerConnectStatus state = ServerStatus; if (state == ServerConnectStatus.Disconnect && _serverStatusNead == ServerConnectStatus.Connect) { SendLogMessage("Запущена процедура активации подключения", LogMessageType.System); Connect(); continue; } if (state == ServerConnectStatus.Connect && _serverStatusNead == ServerConnectStatus.Disconnect) { SendLogMessage("Запущена процедура отключения подключения", LogMessageType.System); Disconnect(); continue; } if (state == ServerConnectStatus.Disconnect) { continue; } if (_candleManager == null) { SendLogMessage("Создаём менеджер свечей", LogMessageType.System); StartCandleManager(); continue; } if (Portfolios == null) { SendLogMessage("Начинаем процедуру прослушивания сервера", LogMessageType.System); _krakenClient.InizialazeListening(); } } catch (Exception error) { SendLogMessage("КРИТИЧЕСКАЯ ОШИБКА. Реконнект", LogMessageType.Error); SendLogMessage(error.ToString(), LogMessageType.Error); ServerStatus = ServerConnectStatus.Disconnect; Dispose(); // очищаем данные о предыдущем коннекторе Thread.Sleep(5000); // переподключаемся _threadPrime = new Thread(PrimeThreadArea); _threadPrime.CurrentCulture = new CultureInfo("us-US"); // _threadPrime.IsBackground = true; _threadPrime.Start(); return; } } } }
private void PrimeThreadArea() { while (true) { Thread.Sleep(1000); lock (_serverLocker) { try { if (_krakenClient == null) { CreateNewServer(); continue; } ServerConnectStatus state = ServerStatus; if (state == ServerConnectStatus.Disconnect && _serverStatusNead == ServerConnectStatus.Connect) { SendLogMessage(OsLocalization.Market.Message8, LogMessageType.System); Connect(); continue; } if (state == ServerConnectStatus.Connect && _serverStatusNead == ServerConnectStatus.Disconnect) { SendLogMessage(OsLocalization.Market.Message9, LogMessageType.System); Disconnect(); continue; } if (state == ServerConnectStatus.Disconnect) { continue; } if (_candleManager == null) { SendLogMessage(OsLocalization.Market.Message10, LogMessageType.System); StartCandleManager(); continue; } if (Portfolios == null) { _krakenClient.InizialazeListening(); } } catch (Exception error) { SendLogMessage(error.ToString(), LogMessageType.Error); ServerStatus = ServerConnectStatus.Disconnect; Dispose(); // очищаем данные о предыдущем коннекторе Thread.Sleep(5000); // переподключаемся _threadPrime = new Thread(PrimeThreadArea); _threadPrime.CurrentCulture = new CultureInfo("us-US"); // _threadPrime.IsBackground = true; _threadPrime.Start(); return; } } } }