Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20.6
New signal

New signal 


 

New signal {( description )} -> Résultat 
Paramètre Type   Description
description  Texte in Description du signal
Résultat  Objet in Objet natif qui encapsule le signal

La commande New signal crée un objet signal.

Un signal est un objet partagé qui peut être passé en paramètre par un worker ou un process à un autre worker ou process, afin que :

  • le worker/process appelé puisse mettre à jour l'objet signal une fois qu'un traitement spécifique est terminé
  • le worker/process appelant peut suspendre son exécution et attendre que le signal soit mis à jour, sans consommer de ressources cpu. 

Dans le paramètre description, vous pouvez éventuellement passer un texte personnalisé pour décrire le signal. Ce texte peut aussi être défini après la création du signal.

L'objet signal étant partagé (voir Objets partagés et collections partagées), il peut également servir à gérer des propriétés utilisateur, y compris la propriété signal.description, à l'aide de la structure Utiliser...Fin utiliser.

 

Valeur retournée

L'objet retourné signal contient les propriétés et méthodes suivantes :

PropriétéTypeDescription
signal.signaledBooléen(propriété en lecture seule) faux à la création du signal. Vrai lorsque la méthode signal.trigger( ) est appelée.
signal.descriptionTexteDescription personnalisée du signal, le cas échéant.

MéthodeDescription
signal.wait( )Attend le signal (process/worker appelant).
signal.trigger( )Déclenche le signal (process/worker appelé).

Exemple  

Voici un exemple type d'un worker qui utilise un signal :

 C_OBJECT($signal)
 $signal:=New signal("Ceci est mon premier signal")
 CALL WORKER("myworker";"doSomething";$signal)
 $signaled:=$signal.wait(1) //Patienter 1 seconde maximum
 If($signaled)
    ALERT("myworker a terminé l'opération. Résultat: "+$signal.myresult)
 Else
    ALERT("myworker n'a pas terminé l'opération en moins d'1s")
 End if

La méthode "doSomething" pourrait être :

 C_OBJECT($1)
  //traitement
  //...
 Use($1)
    $1.myresult:=$processingResult  //retourner le résultat
 End use
 $1.trigger() // L'opération est terminée



Voir aussi  

signal.description
signal.signaled
signal.trigger( )
signal.wait( )

 
PROPRIÉTÉS 

Produit : 4D
Thème : Process (Communications)
Numéro : 1641

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v17 R4

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v20)
4D - Langage ( 4D v20.1)
4D - Langage ( 4D v20.2)
4D - Langage ( 4D v20.3)
4D - Langage ( 4D v20.4)
4D - Langage ( 4D v20.5)
4D - Langage ( 4D v20.6)