stringtranslate.com

Evento (informática)

En programación y diseño de software , un evento es una acción o suceso reconocido por el software , que a menudo se origina de forma asincrónica desde el entorno externo, y que puede ser manejado por el software. Los eventos informáticos pueden ser generados o desencadenados por el sistema, por el usuario o de otras formas. Normalmente, los eventos se manejan sincrónicamente con el flujo del programa ; es decir, el software puede tener uno o más lugares dedicados donde se manejan los eventos, frecuentemente un bucle de eventos .

Una fuente de eventos incluye al usuario, que puede interactuar con el software a través de los periféricos de la computadora , por ejemplo, escribiendo en el teclado o una solicitud de la red . Otra fuente es un dispositivo de hardware como un temporizador . El software también puede desencadenar su propio conjunto de eventos en el bucle de eventos, por ejemplo, para comunicar la finalización de una tarea. Se dice que el software que cambia su comportamiento en respuesta a eventos está impulsado por eventos , a menudo con el objetivo de ser interactivo .

Descripción

Los sistemas controlados por eventos se utilizan normalmente cuando hay alguna actividad externa asincrónica que debe ser manejada por un programa; por ejemplo, un usuario que presiona un botón de su mouse. Un sistema controlado por eventos normalmente ejecuta un bucle de eventos que sigue esperando dichas actividades, por ejemplo, entradas de dispositivos o alarmas internas. Cuando ocurre uno de estos, recopila datos sobre el evento y lo envía al software de manejo de eventos que lo manejará.

Un programa puede optar por ignorar eventos y puede haber bibliotecas para enviar un evento a múltiples controladores que pueden programarse para escuchar un evento en particular. Los datos asociados con un evento como mínimo especifican qué tipo de evento es, pero pueden incluir otra información como cuándo ocurrió, quién o qué causó que ocurriera y datos adicionales proporcionados por la fuente del evento al controlador sobre cómo se produjo el evento. El evento debe ser procesado.

Los eventos se utilizan normalmente en interfaces de usuario, donde el programa maneja las acciones en el mundo exterior (clics del mouse, cambio de tamaño de ventana, pulsaciones del teclado, mensajes de otros programas, etc.) como una serie de eventos. Los programas escritos para muchos entornos de ventanas constan predominantemente de controladores de eventos.

Los eventos también se pueden utilizar a nivel de conjunto de instrucciones , donde complementan las interrupciones . En comparación con las interrupciones, los eventos normalmente se implementan de forma sincrónica: el programa espera explícitamente a que se genere y maneje un evento (generalmente llamando a una instrucción que envía el siguiente evento), mientras que una interrupción puede exigir un servicio inmediato.

Eventos generados por el usuario

Hay una gran cantidad de situaciones o eventos que un programa o sistema puede generar o responder. Algunos eventos comunes generados por usuarios incluyen:

Eventos del mouse

Un dispositivo señalador puede generar una serie de gestos de dispositivo señalador reconocibles por software . Un mouse puede generar una serie de eventos del mouse, como el movimiento del mouse (incluida la dirección del movimiento y la distancia), el botón izquierdo/derecho del mouse arriba/abajo [1] y el movimiento de la rueda del mouse , o una combinación de estos gestos. Por ejemplo, al hacer doble clic normalmente se seleccionan palabras y caracteres dentro de los límites, y al hacer triple clic en párrafos completos.

Eventos de teclado

Al presionar una tecla en un teclado o una combinación de teclas se genera un evento de teclado, lo que permite que el programa que se ejecuta actualmente responda a los datos introducidos, como qué tecla presionó el usuario. [1]

Eventos de palanca de mando

Mover un joystick genera una señal analógica XY. A menudo tienen varios botones para activar eventos. Algunos mandos para juegos populares utilizan joysticks.

Eventos de pantalla táctil

Los eventos generados mediante una pantalla táctil se denominan comúnmente eventos táctiles o gestos .

Eventos de dispositivo

Los eventos del dispositivo incluyen acciones realizadas por o hacia un dispositivo, como sacudidas, inclinaciones, rotaciones, movimientos, etc.

Modelo de evento delegado

Modelo de evento delegado. clickmees la fuente del evento –un botón en este ejemplo– y contiene una lista de oyentes.

Una variante común en la programación orientada a objetos es el modelo de eventos delegados , que proporcionan algunas interfaces gráficas de usuario . Este modelo se basa en tres entidades:

Además, el modelo requiere que:

C# utiliza eventos como delegados especiales que solo pueden ser activados por la clase que los declara. Esto permite una mejor abstracción , por ejemplo: [2]

delegado notificador nulo ( remitente de cadena );    modelo de clase { notificador de evento público notifyViews ; cambio public void () { ... notifyViews ( "Modelo" ); } }            clase Vista1 { vista pública1 ( modelo modelo ) { modelo . notifyViews += nuevo Notificador ( this . Update1 ); }           void Update1 ( remitente de cadena ) { Consola . WriteLine ( $"{sender} se cambió durante la actualización" ); } }      clase Vista2 { vista pública2 ( modelo modelo ) { modelo . notifyViews += nuevo Notificador ( this . Update2 ); }            void Update2 ( remitente de cadena ) { Consola . WriteLine ( $"{remitente} fue cambiado" ); } }      clase Prueba { static void Main () { Modelo modelo = nuevo Modelo ();           nueva Vista1 ( modelo ); nueva Vista2 ( modelo ); modelo . Cambiar (); } }     

Controlador de eventos

En programación de computadoras, se puede implementar un controlador de eventos utilizando una subrutina de devolución de llamada que maneja las entradas recibidas en un programa (llamada escucha en Java y JavaScript [3] ). Cada evento es una pieza de información a nivel de aplicación del marco subyacente , generalmente el kit de herramientas GUI . Los eventos de la GUI incluyen pulsaciones de teclas , movimientos del mouse , selecciones de acciones y temporizadores que expiran. En un nivel inferior, los eventos pueden representar la disponibilidad de nuevos datos para leer un archivo o flujo de red. Los controladores de eventos son un concepto central en la programación basada en eventos .

Los eventos son creados por el marco basándose en la interpretación de entradas de nivel inferior, que pueden ser eventos de nivel inferior en sí mismos. Por ejemplo, los movimientos y clics del mouse se interpretan como selecciones de menú. Inicialmente, los eventos se originan a partir de acciones a nivel del sistema operativo, como interrupciones generadas por dispositivos de hardware, instrucciones de interrupción de software o cambios de estado en el sondeo . En este nivel, los manejadores de interrupciones y los manejadores de señales corresponden a los manejadores de eventos.

Los eventos creados son procesados ​​primero por un despachador de eventos dentro del marco. Normalmente gestiona las asociaciones entre eventos y controladores de eventos, y puede poner en cola controladores de eventos o eventos para su procesamiento posterior. Los despachadores de eventos pueden llamar a los controladores de eventos directamente o esperar a que los eventos se retiren de la cola con información sobre el controlador que se ejecutará.

Notificación de eventos

La notificación de eventos es un término utilizado junto con el software de comunicaciones para vincular aplicaciones que generan pequeños mensajes (los "eventos") con aplicaciones que monitorean las condiciones asociadas y pueden tomar acciones desencadenadas por eventos.

La notificación de eventos es una característica importante en los sistemas de bases de datos modernos (que se utilizan para informar a las aplicaciones cuando se han producido las condiciones que están observando), los sistemas operativos modernos (que se utilizan para informar a las aplicaciones cuando deben realizar alguna acción, como actualizar una ventana) y los sistemas distribuidos modernos. sistemas, donde el productor de un evento podría estar en una máquina diferente que el consumidor o los consumidores. Las plataformas de notificación de eventos normalmente están diseñadas para que la aplicación que produce eventos no necesite saber qué aplicaciones los consumirán, o incluso cuántas aplicaciones monitorearán el flujo de eventos.

A veces se utiliza como sinónimo de publicación-suscripción , un término que se relaciona con una clase de productos que admiten la notificación de eventos en entornos de red. El modelo de sincronía virtual se utiliza a veces para dotar a los sistemas de notificación de eventos y a los sistemas de publicación-suscripción de mayores garantías de coherencia y tolerancia a fallos.

Ver también

Referencias

  1. ^ ab Eventos de mouse y teclado en Windows Forms. Microsoft. Recuperado el 12 de febrero de 2008.
  2. ^ Mössenböck, Hanspeter (25 de marzo de 2002). "C# avanzado: número variable de parámetros" (PDF) . Institut für Systemsoftware, Johannes Kepler Universität Linz, Fachbereich Informatik. pag. 26 . Consultado el 5 de agosto de 2011 .
  3. ^ "EventTarget.addEventListener() - API web | MDN". desarrollador.mozilla.org .

enlaces externos