|
|
|
|
ExecuteMainThreadAsynchronous (Función) Ejecuta un procedimiento en el subproceso principal de la aplicación sin esperar a que termine de ejecutarse. // From a secondary thread, interact with the user ExecuteMainThreadAsynchronous(UserInteractionProcedure, "Message") Sintaxis
ExecuteMainThreadAsynchronous(<WLanguage procedure> [, <Parameter 1> [... [, <Parameter N>]]])
<WLanguage procedure>: Nombre de procedimiento Nombre del procedimiento a ejecutar. <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 El subproceso principal ejecuta el procedimiento cuando espera las acciones del usuario. Por lo tanto, cuando el subproceso principal de una aplicación debe ejecutar procedimientos llamados por la función ExecuteMainThreadAsynchronous, se deben cumplir las siguientes reglas: - el subproceso principal debe ser de alta disponibilidad: las secciones críticas deben ser cortas y localizadas, no debe haber procesos largos si un subproceso secundario necesita llamar a la función ExecuteMainThreadAsynchronous, no debe haber semáforos ni eventos que esperen objetos de sincronización.
- para evitar interbloqueos, los subprocesos no deben retener objetos de sincronización (secciones críticas, semáforos, eventos, etc.) cuando se llama a la función ExecuteMainThreadAsynchronous.
Si el subproceso principal está ejecutando un proceso, éste no se interrumpe y el procedimiento se ejecuta cuando el subproceso principal vuelve a esperar una acción del usuario. Sin embargo, se puede utilizar la función Multitask para interrumpir un proceso largo, procesar las acciones del usuario y ejecutar los procedimientos llamados por la función ExecuteMainThreadAsynchronous. La llamada a la función no es bloqueante: el resto del código se ejecuta independientemente de si el procedimiento ya ha sido ejecutado por el subproceso principal. No se puede obtener el valor de retorno del procedimiento. Atención: - La función ExecuteMainThreadAsynchronous no permite llamar a un procedimiento desde un contexto de ejecución "padre". Por ejemplo, no se puede llamar un procedimiento del proyecto desde un componente externo.
- Los detalles de los errores y las excepciones del procedimiento ejecutado se recuperan en el subproceso de llamada en el que se llama a la función ExecuteMainThreadAsynchronous.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|