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(); } }