Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
CALL WORKER
|
CALL WORKER ( process ; méthode {; param}{; param2 ; ... ; paramN} ) | ||||||||
Paramètre | Type | Description | ||||||
process | Texte, Entier long |
![]() |
Nom ou numéro du process worker | |||||
méthode | Texte |
![]() |
Nom de la méthode projet à appeler | |||||
param | Expression |
![]() |
Paramètre(s) passé(s) à la méthode | |||||
La commande CALL WORKER crée ou appelle le process worker dont vous avez passé le nom ou le numéro dans process et demande l’exécution de la methode dans son contexte avec le ou les paramètre(s) optionnel(s) spécifié(s) dans param.
La commande CALL WORKER encapsule param dans un message qu'elle envoie dans la boîte aux lettres du worker. Pour plus d'informations sur les process workers, reportez-vous à la section A propos des workers.
Dans le paramètre process, vous passez soit le nom soit le numéro du process worker :
Note : Le process principal, créé par 4D à l'ouverture de la base pour l'interface utilisateur et le mode application, est un process worker et peut être appelé par CALL WORKER. Le nom de ce process pouvant varier en fonction de la langue de 4D, il est préférable de le désigner par son numéro (toujours 1) lorsque vous utilisez CALL WORKER.
Le process worker est affiché dans la liste des process de l'Explorateur d'exécution et est retourné par la commande PROCESS PROPERTIES lorsqu'elle est appliquée à ce process.
Dans le paramètre méthode, vous passez le nom de la méthode projet que vous voulez exécuter dans le contexte du process worker. Vous pouvez passer une chaîne vide ; dans ce cas, le worker exécute la méthode utilisée à l'origine pour démarrer son process, s'il y en a (c'est-à-dire, la méthode de démarrage du worker).
Note : Il n'est pas possible de passer une chaîne vide dans méthode lorsque la commande appelle le process principal (process n°1), puisqu'il n'est pas démarré via une méthode projet. Par conséquent, CALL WORKER(1;"") ne fait rien.
Vous pouvez utiliser le paramètre optionnel param pour passer un ou plusieurs paramètres à la méthode. Vous passez les paramètres de la mème façon que pour une sous-routine (voir la section ). Au début de son exécution dans le contexte du process, la méthode du process reçoit les valeurs des paramètres dans $1, $2, etc. Notez qu'un tableau ne peut pas être passé comme paramètre à une méthode. Par ailleurs, dans le contexte de la commande CALL WORKER, les considérations suivantes doivent être prises en compte :
Un process worker reste actif jusqu’à la fermeture de l'application ou jusqu'à ce que la commande KILL WORKER soit appelée explicitement pour ce process. Pensez à appeler cette commande une fois que le process worker n'est plus utile afin de libérer l'espace mémoire.
Dans un formulaire, un bouton démarre un calcul, par exemple des statistiques pour l'année sélectionnée. Ce bouton crée ou appelle un process worker qui effectue le calcul des données tandis que l'utilisateur peut continuer à travailler dans le formulaire.
Voici la méthode du bouton :
//appelle le process worker vNomWorker avec le paramètre
C_LONGINT(vAnnée)
vAnnée:=2015 //peut être sélectionné par l’utilisateur dans le formulaire
CALL WORKER("monWorker";"méthodeWorker";vAnnée;Current form window)
Voici le code de méthodeWorker :
//voici la méthode du worker
//peut être préemptif ou coopératif
C_LONGINT($1) //reçoit l’année
C_LONGINT($2) //reçoit la référence de la fenêtre
C_OBJECT(vRésultatStatistiques) //stockage de résultats statistiques
... //calcul des statistiques
//une fois le calcul terminé, rappel du formulaire avec les valeurs calculées
//vRésultatStatistiques peut afficher les résultats dans le formulaire
CALL FORM($2;"affichageStats";vRésultatStatistiques)
A propos des workers
CALL FORM
Current process name
KILL WORKER
Produit : 4D
Thème : Process (Communications)
Numéro :
1389
Créé : 4D v15 R5
Modifié : 4D v16 R4
4D - Langage ( 4D v19)
4D - Langage ( 4D v19.1)
4D - Langage ( 4D v19.4)
4D - Langage ( 4D v19.5)
4D - Langage ( 4D v19.6)
4D - Langage ( 4D v19.7)
4D - Langage ( 4D v19.8)