|
|
|
|
ExecuteMainThread( Función) Activa la ejecución de una Procedure por parte de la aplicación principal thread.
// 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
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|