Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
CALL WORKER
|
CALL WORKER ( proceso ; metodo {; param}{; param2 ; ... ; paramN} ) | ||||||||
Parámetro | Tipo | Descripción | ||||||
proceso | Texto, Entero largo |
![]() |
Nombre o número del proceso worker | |||||
metodo | Texto |
![]() |
Nombre del método proyecto a llamar | |||||
param | Expresión |
![]() |
Parámetros pasados al método | |||||
El comando CALL WORKER crea o llama al proceso worker cuyo nombre o ID se pasa en proceso y pide la ejecución del metodo en su contexto con el parámetro opcional param.
El comando CALL WORKER encapsula los parámetros param en un mensaje y lo envía en el buzón de mensajes del worker. Para obtener más información sobre los procesos worker, por favor consulte la sección Sobre workers.
En el parámetro proceso, puede especificar el worker utilizando su nombre o su número de proceso:
Nota: el proceso principal, creado por 4D cuando se abre una base para la interfaz de usuario y el modo de aplicación, es un proceso worker y puede ser llamado por CALL WORKER.Sin embargo, ya que su nombre puede variar en función del lenguaje de 4D, es preferible designar este proceso utilizando su número (siempre 1) cuando se utiliza CALL WORKER.
El proceso worker aparece en la lista de procesos del Explorador de ejecución y es devuelto por el comando PROCESS PROPERTIES cuando se aplica a este proceso.
En metodo, se pasa el nombre del método de proyecto a ejecutar en el contexto del proceso worker. Puede pasar una cadena vacía; en este caso, el worker ejecuta el método que se utilizó originalmente para comenzar su proceso, si lo hay (es decir, el método de inicio del worker).
Nota: no es posible pasar una cadena vacía en el método cuando el comando llama al proceso principal (proceso número 1), ya que no se ha iniciado utilizando un método proyecto. Como resultado, CALL WORKER (1;"") no hace nada.
También puede pasar parámetros al metodo utilizando uno o más parámetros opcionales param. Pase los parámetros de la misma manera que los pasaría a una subrutina (ver la sección ). Al iniciar la ejecución en el contexto del proceso, el método de proceso recibe los valores de parámetro en $1, $2, y así sucesivamente. Recuerde que los arrays no pueden ser pasados como parámetros a un método. Además, en el contexto del comando CALL WORKER, las siguientes consideraciones adicionales deben tenerse en cuenta:
Un proceso worker se mantiene vivo hasta que la aplicación esté cerrada o el comando KILL WORKER se llame explícitamente. Para liberar memoria, no olvide llamar a este comando una vez un proceso worker ya no sea necesario.
En un formulario, un botón inicia un cálculo, por ejemplo las estadísticas con respecto al año seleccionado. El botón crea o llama a un proceso de worker que va a calcular los datos mientras el usuario puede continuar trabajando en el formulario.
El método del botón es:
//llamar al worker myWorker con el parámetro
C_LONGINT(vYear)
vYear:=2015 // podría haber sido seleccionado por el usuario en el formulario
CALL WORKER("myWorker";"workerMethod";vYear;Current form window)
El código de workerMethod es:
// este es el método del worker
// puede ser apropiativo o cooperativo
C_LONGINT($1) //obtiene el año
C_LONGINT($2) //obtiene la referencia de la ventana
C_OBJECT(vStatResults) //para almacenar los resultados de las estadísticas
... //calcular estadísticas
//una vez terminado, vuelve a llamar el formulario con los valores calculados
//vStatResults podría mostrar los resultados en el formulario
CALL FORM($2;"displayStats";vStatResults)
Producto: 4D
Tema: Procesos (Comunicación)
Número
1389
Creado por: 4D v15 R5
Modificado: 4D v16 R4
Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)