AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de gestión de procesos / Tareas paralelas
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Activa la ejecución de una tarea paralela.
// Use the syntax 1
t1 is ParallelTask = ParallelTaskExecute(ProcedureA, (), ptoMainThread)
// Use the syntax 2
t1 is ParallelTask
t1.Procédure = Procedure3
t2 is ParallelTask = ParallelTaskExecute(t1)
// Use the syntax 3
t3 is Description of ParallelTask
t3.Procedure = Procedure3
ParallelTaskExecute(t3)
// Use the syntax 3
t3bis is Description of ParallelTask
t3bis.Procedure = Procedure3bis
t3bis.Parameter[1] = Today()
t3bis.Parameter[2] = TimeSys()
ParallelTaskExecute(t3bis)
// Declare several tasks and run a process at the end of all these tasks
MyTaskDescription is Description of ParallelTask
arrMyTasks is array of ParallelTask // Result of parallel tasks functions
// Task #1
MyTaskDescription.Procedure = Example2_Step1
// Runs the parallel tasks
// Add the task returned to an array of tasks
// in order to re-use them in ParallelTaskExecuteAfterAll
Add(arrMyTasks, ParallelTaskExecute(MyTaskDescription))
// Task #2
MyTaskDescription.Procedure = Example2_Step2
Add(arrMyTasks, ParallelTaskExecute(MyTaskDescription))
// Specify the procedure to run once
// once all the tasks found in the arrMyTasks array are ended
ParallelTaskExecuteAfterAll(arrMyTasks, Example2_End, (), ptoMainThread)
Sintaxis

Ejecutando una tarea paralela Ocultar los detalles

<Result> = ParallelTaskExecute(<Procedure> [, <Parameters> [, <Options>]])
<Result>: ParallelTask Variable
ParallelTask Variable correspondiente a la tarea a ejecutar.
<Procedure>: Cadena de caracteres o variable de tipo Procedure
Procedimiento a ejecutar. Este parámetro puede corresponder a:
  • el nombre del procedimiento a ejecutar.
  • el nombre de la variable de tipo Procedure que corresponde al procedimiento a ejecutar.
<Parameters>: Lista de valores entre paréntesis, separados por comas
Parámetros del procedimiento a ejecutar. La lista de parámetros tiene el siguiente formato:
(<Parameter 1>, ..., <Parameter N>)
donde:
  • <Parameter 1>: Primer parámetro del procedimiento.
  • ...
  • <Parameter N>: Enésimo parámetro de procedimiento.
Atención: Los parámetros se pasan por valor. En el caso de las variables de tipos complejos (arrays, objeto), el valor es el propio elemento.. Para proteger el acceso a esta Variable, se puede utilizar una de las siguientes soluciones:
  • hacer una copia de la Variable (con la palabra clave LOCAL),
  • utilizar secciones críticas (con la función WLanguage CriticalSectionStart( Función) o el atributo <sección crítica>)
<Options>: Constante o combinación de constantes de tipo Integer (opcional)
Opciones de tarea a ejecutar:
ptoDelayedCopyHFSQLContext
(Valor predeterminado)
Activa un ligero copy del contexto HFSQL durante el primer acceso a los datos HFSQL .
ptoFullCopyHFSQLContextActiva la copy inmediata del contexto HFSQL actual.
Se recomienda, por ejemplo, si la tarea paralela debe tener en cuenta las posiciones actuales en los archivos y consultas del contexto de la persona que llama.
ptoLightCopyHFSQLContextActiva la copy inmediata de una parte del contexto HFSQL actual.
Solo se almacenan los directorios que contienen los archivos de datos en modo HFSQL Classic y/o las conexiones en modo HFSQL Client/Server.
ptoMainThreadEjecuta la tarea en el principal Thread.
Esta constante se puede combinar con una de las otras constantes. Atención: Esta constante no puede ser usada para ejecutar una tarea paralela en la thread principal de la thread principal.

Observación: Para saber qué tipo de copy elegir, consulte la página de comparison entre los diferentes modos de copy.

Ejecución de una tarea paralela descrita previamente (ParallelTask Variable) Ocultar los detalles

<Result> = ParallelTaskExecute(<Task>)
<Result>: ParallelTask Variable
ParallelTask Variable correspondiente a la tarea ejecutada.
<Task>: ParallelTask Variable
Nombre de la ParallelTask Variable correspondiente a la tarea a ejecutar.
Atención: Se produce un error de WLanguage si la tarea se está ejecutando actualmente o si la tarea ya estaba ejecutada.

Ejecución de una tarea paralela identificada por su descripción (Descripción de ParallelTask Variable) Ocultar los detalles

<Result> = ParallelTaskExecute(<Task description>)
<Result>: ParallelTask Variable
ParallelTask Variable correspondiente a la tarea ejecutada.
<Task description>: Descripción de ParallelTask Variable
Nombre de la Descripción de ParallelTask Variable que describe la tarea a ejecutar.
Observaciones
  • La tarea se guarda en la cola de tareas a ejecutar.
  • ParallelTaskExecute no es una función de bloqueo y no espera a que se complete la tarea.
  • comparison entre los diferentes tipos de copy para el contexto HFSQL:
    Tipo de copyBeneficiosInconvenientes
    Copia completaCopias:
    • los extensos parámetros de conexión (conexiones, caminos físicos, ...).
    • las posiciones, los filtros, ... definido en los archivos de datos.
    • las consultas.
    Consumo de memoria (en el cliente y en el servidor).
    Luz copyCopia los extensos parámetros de conexión (conexiones, caminos físicos, ...).
    No hay consumo de memoria en el servidor.
    Los registros y los filtros actuales no se copian. Por lo tanto, los registros deben ser reposicionados por HReadSeek por ejemplo.
    No copy de consultas.
    El consumo de memoria en el ordenador del cliente
    Copia diferidaNo hay consumo de memoria (en el cliente y en el servidor). Riesgo: Si se modifican los parámetros de conexión extendida, se tendrá en cuenta la última modificación.
    Los registros y los filtros actuales no se copian. Por lo tanto, los registros deben ser reposicionados por HReadSeek por ejemplo.
    No copy de consultas.

En la mayoría de los casos, se recomienda el copy retrasado siempre que no cambie los parámetros de conexión y que realice las llamadas necesarias a HReadSeek.
Componente: wd290vm.dll
Versión mínima requerida
  • Versión 20
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 24/06/2023

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