PC SOFT

AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

  • Presentación
  • Gestión simple de eventos
  • Principio
  • Ejemplo: Aplicación con corrector ortográfico
  • Funciones WLanguage
  • Observación
  • Gestión avanzada de eventos
  • Principio
  • Implementación
  • Funciones para la gestión avanzada de eventos
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 App
Otros
Procedimientos almacenados
Presentación
Los eventos permiten sincronizar los diferentes hilos de una aplicación. Por lo tanto, un hilo puede esperar a que se ejecute otro hilo.
WLanguage propone dos modos para gestionar eventos:
Gestión simple de eventos

Principio

Dos hilos se ejecutan en paralelo (un hilo principal y uno secundario, por ejemplo). Uno de los hilos espera una acción específica del segundo hilo para poder ejecutarse.

Ejemplo: Aplicación con corrector ortográfico

Cuando un usuario pulsa la BARRA ESPACIADORA en un control Campo de entrada, el corrector ortográfico se activa automáticamente para revisar la palabra anterior.
En este caso, la revisión ortográfica se gestiona en un hilo secundario.
Cada vez que se pulsa la BARRA ESPACIADORA, el hilo principal envía una señal al hilo secundario para iniciar el corrector ortográfico.
El código para este tipo de aplicación es el siguiente:
  • Código del hilo principal:
    IF Right(EDT_Edit1, 1) = " " THEN
    ThreadSendSignal("ThreadSpellCheck")
    END
  • Código del hilo secundario (ThreadSpellCheck):
    LOOP
    IF ThreadWaitSignal() = True THEN
     StartSpellCheck()
    END
    END

Funciones WLanguage

Las siguientes funciones permiten gestionar eventos de forma simple:
ThreadSendSignalEl hilo actual envía una señal al hilo que está en espera para desbloquearlo.
ThreadWaitSignalBloquea el hilo actual hasta que reciba una señal de otro hilo.

Observación

Los semáforos y los eventos son objetos del sistema identificados por un nombre. Se pueden compartir entre todas las aplicaciones que se ejecutan en un equipo.
Por lo tanto, dos aplicaciones (o dos instancias de la misma aplicación) utilizan los mismos objetos si utilizan el mismo nombre.
Para crear nombres únicos, utilice la función Instance para definir el nombre deseado.
Java En Java, los semáforos, secciones críticas y eventos son únicos para la aplicación que los creó. No se pueden compartir entre varias aplicaciones.
Gestión avanzada de eventos

Principio

La gestión avanzada de eventos se utiliza cuando se establece una comunicación entre varios hilos (más de 2). Algunos hilos esperan a que el hilo principal realice una tarea. Cuando el hilo principal realiza esta tarea, envía una señal a todos los hilos secundarios.

Implementación

Existen dos métodos para implementar una gestión avanzada de eventos:
  • Utilizar las variables AutomaticEvent y ManualEvent.
  • Utilizar eventos con nombre (método recomendado en la gestión de opciones para compartir eventos).
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPad Método 1: Utilizar las variables AutomaticEvent y ManualEvent.
Las siguientes etapas permiten implementar la gestión avanzada de eventos:
  1. Crear una variable de tipo AutomaticEvent o ManualEvent. Este evento está cerrado de forma predeterminada. El evento se destruye automáticamente al salir del alcance de la variable correspondiente.
  2. Esperar un evento (función EventWait).
  3. Sincronizar hilos con las funciones EventOpen y EventClose.
Método 2: Utilizar eventos con nombre (método recomendado en la gestión de opciones para compartir eventos)
Las siguientes etapas permiten implementar la gestión avanzada de eventos:
  1. Crear un evento (función EventCreate). Este evento está cerrado de forma predeterminada.
  2. Esperar un evento (función EventWait).
  3. Sincronizar hilos:
    • con la función EventChange: el evento se abre. Todos los hilos en espera se desbloquean y el evento se vuelve a cerrar automáticamente (operación predeterminada).
    • WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPad con las funciones EventOpen y EventClose.
  4. Destruir el evento (con la función EventDestroy).

Funciones para la gestión avanzada de eventos

Las siguientes funciones WLanguage permiten gestionar eventos de forma avanzada:
EventChangeModifica el estado de un evento.
eventCloseCierra una sincronización Event entre varios hilos.
EventCreateCrea un evento.
EventDestroyDestruye explícitamente un Event.
eventOpenAbre una sincronización Event entre varios hilos.
EventWaitBloquea el hilo actual mientras espera a que se abra el Event especificado.
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario