public void Stop() { _bKeepRunning = false; sockServer.CloseSocket(); lock (dctClientes) { foreach (HomeBrokerHandlerState state in dctClientes.Values) { try { state.HandlerLivroOfertas.Stop(); state.HandlerNegocios.Stop(); state.HandlerLivroAgregado.Stop(); state.ClientSocket.Shutdown(SocketShutdown.Both); } catch (Exception ex) { logger.Error("Erro(): " + ex.Message, ex); } } } while (myThread != null && myThread.IsAlive) { logger.Info("Aguardando finalizacao ServidorConexaoHB"); Thread.Sleep(250); } logger.Info("ServidorConexaoHB Finalizado"); }
public void Stop() { _bKeepRunning = false; sockServer.CloseSocket(); lock (dctClientes) { foreach (AnaliseGraficaHandlerState state in dctClientes.Values) { try { state.HandlerAnaliseGrafica.Stop(); state.ClientSocket.Shutdown(SocketShutdown.Both); } catch (Exception ex) { logger.Error("Erro(): " + ex.Message, ex); } } } while (myThread != null && myThread.IsAlive) { logger.Info("Aguardando finalizacao ServidorConexaoANG"); Thread.Sleep(250); } logger.Info("ServidorConexaoANG Finalizado"); }
private void MonitorConexaoServicoAlertas() { TimeSpan iTrialInterval; logger.Info("Iniciando thread de monitoracao de conexao com ServicodeAlertas"); Thread.Sleep(TimeoutSocket); while (bKeepRunning) { // ajusta Timeout, caso esteja em horário sem movimento if (DateTime.Now.Hour > 7 && DateTime.Now.Hour < 21) { iTrialInterval = (new TimeSpan(0, 0, 0, 0, TimeoutSocket)); } else { iTrialInterval = (new TimeSpan(0, 0, 0, 0, TimeoutSocket * 5)); } if (!socket.IsConectado()) { gerenciadorAlertas.Limpar(); logger.Info("Reabrindo conexao com MDS..."); socket.OpenConnection(); } else { // Verifica ultima comunicacao com MDS TimeSpan tslastpkt = DateTime.Now.Subtract(socket.LastPacket); if (tslastpkt.CompareTo(iTrialInterval) > 0) { if (!pingPending) { SendPing(); } else { logger.Warn("Finalizando conexao com MDS por timeout!!!"); socket.CloseSocket(); } } } Thread.Sleep(iTrialInterval); } logger.Info("Thread de monitoracao de conexao com ServicoAlertas finalizacao"); }