AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de gestión de procesos / Hilos, semáforos, señales y mutex
  • Modo de funcionamiento
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
Activa la ejecución de una Procedure por parte de la aplicación principal thread.
WEBDEV - Código Servidor Atención : Esta función no tiene efecto en los sitios WEBDEV (Windows o Linux).
Ejemplo
// Interact with the user
AnAnswer is string
AnAnswer = ExecuteMainThread(UserInteractionProcedure, "Message")
Sintaxis
<Result> = ExecuteMainThread(<WLanguage procedure> [, <Parameter 1> [... [, <Parameter N>]]])
<Result>: Cadena de caracteres
El valor de retorno de Procedure llamado. Este valor es idéntico al valor obtenido si se ejecuta directamente el Procedure.
<WLanguage procedure>: Nombre de Procedure
Nombre de Procedure para correr.
<Parameter 1>: Opcional
Parámetros que se pasarán al procedimiento. Atención : estos parámetros se pasan por valor (no por referencia).
<Parameter N>: Opcional
Parámetros que se pasarán al procedimiento. Atención : estos parámetros se pasan por valor (no por referencia).
Observaciones

Modo de funcionamiento

La ejecución de Procedure es realizada por la Thread principal cuando ésta está esperando las interacciones con el usuario.
Por lo tanto, cuando el hilo principal de una aplicación debe ejecutar procedimientos llamados por ExecuteMainThread, se deben cumplir las siguientes reglas:
  • el principal Thread debe estar altamente disponible : secciones críticas localizadas, ningún proceso largo cuando un hilo secundario tenga que llamar a la función ExecuteMainThread, ninguna espera de objetos de sincronización (semáforos, eventos, etc.).
  • la llamada a ExecuteMainThread desde los hilos debe hacerse sin "mantener" objetos de sincronización (secciones críticas, semáforos, eventos, ...) para evitar un bloqueo.
Si la thread principal está ejecutando una Process, esta Process no se interrumpe y la Procedure se ejecutará cuando la thread principal vuelva a esperar la interacción con el usuario.
Sin embargo, la función Multitask permite interrumpir un proceso largo para procesar las acciones del usuario y ejecutar los procedimientos llamados por la función ExecuteMainThread.
La función ExecuteMainThread es bloqueante mientras el hilo principal no haya ejecutado el procedimiento.
Atención :
  • La función ExecuteMainThread no permite llamar a un procedimiento de un contexto de ejecución "padre". Por ejemplo, un proyecto Procedure no puede ser llamado desde un componente externo.
  • Los errores y las excepciones que provienen del procedimiento ejecutado se transfieren al hilo llamador durante la llamada a la función ExecuteMainThread.
Clasificación Lógica de negocio / UI: Código neutro
Componente: wd270wm.dll
Versión mínima requerida
  • Versión 17
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 05/07/2023

Señalar un error o enviar una sugerencia | Ayuda local