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
Creer signal

Creer signal 


 

Creer 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 Creer 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_OBJET($signal)
 $signal:=Creer signal("Ceci est mon premier signal")
 APPELER WORKER("myworker";"doSomething";$signal)
 $signaled:=$signal.wait(1) //Patienter 1 seconde maximum
 Si($signaled)
    ALERTE("myworker a terminé l'opération. Résultat: "+$signal.myresult)
 Sinon
    ALERTE("myworker n'a pas terminé l'opération en moins d'1s")
 Fin de si

La méthode "doSomething" pourrait être :

 C_OBJET($1)
  //traitement
  //...
 Utiliser($1)
    $1.myresult:=$processingResult  //retourner le résultat
 Fin utiliser
 $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
Nom intl. : New signal

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)