예제 #1
0
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (contenedorVentanas.CantidadVentanas > 0 && !HerramientasWindow.MensajeSIoNOAdvertencia("Si cierra el sistema puede perder la información con la que está trabajando. ¿Desea continuar?", "Atención"))
            {
                e.Cancel         = true;
                seCerraraVentana = false;
            }
            else if (!EstaEnBloqueo)
            {
                seCerraraVentana = true;
                EstaEnBloqueo    = false;
                HerramientasWindow.CerrarNotificaciones();
                if (bw_monitoreoAccesoNoPermitido == null || bw_monitoreoAccesoNoPermitido == null || bw_MonitoreoMouse == null)
                {
                    HerramientasWindow.MensajeErrorSimple("Ha ocurrido un error y los 'Workers' se han detenido antes de tiempo. Verificar con sistemas.", "Error con workers");
                }
                try
                {
                    bw_monitoreoActualizaciones.CancelAsync();
                    bw_monitoreoAccesoNoPermitido.CancelAsync();
                    bw_MonitoreoMouse.CancelAsync();
                    bw_actualizadorModulos.CancelAsync();
                    tControlador.Abort();
                }
                catch { }

                if (seCerroSistema != null)
                {
                    if (seTerminaraSistema)
                    {
                        seCerroSistema(RazonCierre.TerminoSistema);
                    }
                    else
                    {
                        seCerroSistema(RazonCierre.CerroSesion);
                    }
                }

                ///HerramientasWindow.CerrarVentanasEmergentes();
                Thread actualizarEquipo = new Thread(ActualizarEquipoRegistrado);
                actualizarEquipo.Start();
            }
        }